导出mven依赖

  1. <dependency>
  2. <groupId>org.apache.httpcomponents</groupId>
  3. <artifactId>httpclient</artifactId>
  4. <version>4.5.6</version>
  5. </dependency>
  1. package testhttpclient.testhttpclient;
  2.  
  3. import java.io.IOException;
  4. import java.io.UnsupportedEncodingException;
  5. import java.util.ArrayList;
  6. import java.util.HashMap;
  7. import java.util.HashSet;
  8. import java.util.List;
  9. import java.util.Map;
  10. import java.util.Set;
  11.  
  12. import org.apache.http.Header;
  13. import org.apache.http.HttpEntity;
  14. import org.apache.http.HttpHost;
  15. import org.apache.http.HttpRequest;
  16. import org.apache.http.HttpResponse;
  17. import org.apache.http.HttpStatus;
  18. import org.apache.http.NameValuePair;
  19. import org.apache.http.ParseException;
  20. import org.apache.http.client.ClientProtocolException;
  21. import org.apache.http.client.HttpClient;
  22. import org.apache.http.client.config.RequestConfig;
  23. import org.apache.http.client.entity.UrlEncodedFormEntity;
  24. import org.apache.http.client.methods.CloseableHttpResponse;
  25. import org.apache.http.client.methods.HttpGet;
  26. import org.apache.http.client.methods.HttpPost;
  27. import org.apache.http.client.methods.HttpRequestBase;
  28. import org.apache.http.impl.client.BasicCookieStore;
  29. import org.apache.http.impl.client.CloseableHttpClient;
  30. import org.apache.http.impl.client.HttpClients;
  31. import org.apache.http.message.BasicNameValuePair;
  32. import org.apache.http.util.EntityUtils;
  33.  
  34. public class HttpClientComm {
  35.  
  36. /**
  37. * 客户端总成
  38. */
  39. protected CloseableHttpClient httpclient;
  40. /**
  41. * cookie信息
  42. */
  43. protected Set<String>cookies;
  44. /**
  45. * get方法
  46. */
  47. protected HttpGet httpget;
  48. /**
  49. * post方法
  50. */
  51. protected HttpPost httppost;
  52. /**
  53. * 代理
  54. */
  55. protected HttpHost proxy;
  56. /**
  57. * 设置默认延迟时间
  58. */
  59. protected RequestConfig requestconfig;
  60. /**
  61. * 返回存储数据map
  62. */
  63. protected Map<String,String>resultmap;
  64.  
  65. /**
  66. * 响应状态
  67. */
  68. public final String HTTPSTATUS="status";
  69. /**
  70. * 返回数据结果
  71. */
  72. public final String HTTPRESULT="httpresult";
  73. /**
  74. * 初始化客户端
  75. */
  76. public HttpClientComm() {
  77. httpclient=HttpClients.createDefault();
  78. requestconfig=RequestConfig.custom().setConnectionRequestTimeout(10*1000).setSocketTimeout(10*1000).build();
  79. cookies=new HashSet<String>(16);
  80. }
  81. /**
  82. * 初始化请求,设置请求时间
  83. * @param millistimeout
  84. */
  85. public HttpClientComm(int millistimeout) {
  86. httpclient=HttpClients.createDefault();
  87. requestconfig=RequestConfig.custom().setConnectionRequestTimeout(10*1000).setSocketTimeout(10*1000).build();
  88. cookies=new HashSet<String>(16);
  89. }
  90. /**
  91. * 设置代理
  92. *
  93. * @Data:上午11:02:43
  94. * @Package:testhttpclient.testhttpclient
  95. * @Return:void
  96. * @Auth:diao
  97. */
  98. public void setProxy(String Address,int port)
  99. {
  100. proxy=new HttpHost(Address, port);
  101. requestconfig=RequestConfig.custom().setProxy(proxy).build();
  102. }
  103. /**
  104. * 释放请求资源
  105. *
  106. * @Data:上午11:03:27
  107. * @Package:testhttpclient.testhttpclient
  108. * @Return:void
  109. * @Auth:diao
  110. */
  111. public void close()
  112. {
  113. if(cookies!=null)
  114. {
  115. cookies=null;
  116. }
  117. if(proxy!=null)
  118. {
  119. proxy=null;
  120. }
  121. if(resultmap!=null)
  122. {
  123. resultmap=null;
  124. }
  125. if(httpget!=null)
  126. {
  127. httpget.releaseConnection();
  128. }
  129. if(httppost!=null)
  130. {
  131. httppost.releaseConnection();
  132. }
  133. if(httpclient!=null)
  134. {
  135. try {
  136. httpclient.close();
  137. } catch (IOException e) {
  138. // TODO Auto-generated catch block
  139. e.printStackTrace();
  140. }finally {
  141. httpclient=null;
  142. }
  143. }
  144. }
  145. /**
  146. *
  147. * get请求传递的连接,请求头
  148. * @Data:上午11:15:10
  149. * @Package:testhttpclient.testhttpclient
  150. * @Return:Map<String,String>
  151. * @Auth:diao
  152. */
  153. public Map<String,String>get(String url,Map<String,String>headers){
  154. httpget=new HttpGet(url);
  155. httpget.setConfig(requestconfig);
  156. headers.forEach((a,b)->{
  157. httpget.addHeader(a, b);
  158. });
  159. httpget.addHeader("cookie",cookies.toString().substring(1,cookies.toString().length()-1));
  160.  
  161. CloseableHttpResponse respose=null;
  162.  
  163. try {
  164. respose=httpclient.execute(httpget);
  165. } catch (ClientProtocolException e) {
  166. // TODO Auto-generated catch block
  167. e.printStackTrace();
  168. } catch (IOException e) {
  169. // TODO Auto-generated catch block
  170. e.printStackTrace();
  171. }
  172. return getResData(respose, httpget);
  173. }
  174. /**
  175. * post请求方式
  176. *
  177. * @Data:下午2:01:15
  178. * @Package:testhttpclient.testhttpclient
  179. * @Return:Map<String,String>
  180. * @Auth:diao
  181. */
  182. public Map<String,String>post(String url,Map<String,String>headers,Map<String,String>params,String charset) throws UnsupportedEncodingException
  183. {
  184. //设置请求方法及连接信息
  185. httppost=new HttpPost(url);
  186. //设置请求参数
  187. httppost.setConfig(requestconfig);
  188. //设置请求头
  189. headers.forEach((a,b)->{
  190. httpget.addHeader(a, b);
  191. });
  192. BasicCookieStore cookie=new BasicCookieStore();
  193. HttpClients.custom().setDefaultCookieStore(cookie).build();
  194. httppost.addHeader("cookie",cookies.toString().substring(1,cookies.toString().length()-1));
  195. List<NameValuePair>pairs=null;
  196. if(params!=null&&!params.isEmpty())
  197. {
  198. pairs=new ArrayList<NameValuePair>(params.size());
  199. for(String key:params.keySet())
  200. {
  201. pairs.add(new BasicNameValuePair(key,params.get(key).toString()));
  202. }
  203. }
  204. if(pairs!=null&&pairs.size()>0)
  205. {
  206. httppost.setEntity(new UrlEncodedFormEntity(pairs,charset));
  207. }
  208. //执行请求
  209. HttpResponse response=null;
  210. try {
  211. response=httpclient.execute(httppost);
  212. } catch (ClientProtocolException e) {
  213. // TODO Auto-generated catch block
  214. e.printStackTrace();
  215. } catch (IOException e) {
  216. // TODO Auto-generated catch block
  217. e.printStackTrace();
  218. }
  219. return getResData(response, httppost);
  220. }
  221.  
  222. /**
  223. * 处理http结果请求
  224. *
  225. * @Data:下午1:42:28
  226. * @Package:testhttpclient.testhttpclient
  227. * @Return:Map<String,String>
  228. * @Auth:diao
  229. */
  230. public Map<String,String> getResData(HttpResponse response,HttpRequestBase requestbase)
  231. {
  232. int status=405;
  233. if(response!=null)
  234. {
  235. status=response.getStatusLine().getStatusCode();
  236. for(Header header:response.getAllHeaders())
  237. {
  238. if("Set-Cookie".equalsIgnoreCase(header.getName()))
  239. {
  240. cookies.add(header.getValue());
  241. }
  242. }
  243. }
  244. resultmap=new HashMap<>(16);
  245. resultmap.put(HTTPRESULT,status+"");
  246. resultmap.put(HTTPRESULT, null);
  247. if(status!=HttpStatusEnum.OK.code())
  248. {
  249. requestbase.abort();
  250. }else {
  251. HttpEntity entity= response.getEntity();
  252. if(entity!=null)
  253. {
  254. try {
  255. String data=EntityUtils.toString(entity,"utf-8");
  256.  
  257. String start="[",end="]";
  258. if(data.startsWith(start))
  259. {
  260. data=data.substring(1);
  261. }
  262. if(data.endsWith(end))
  263. {
  264. data=data.substring(0,data.length()-1);
  265. }
  266. data=data.replaceAll("\\\\t|\\\\n|\\r\\n","");
  267. data=data.replaceAll("\\\\/","/");
  268. data=decodeUnicode(data);
  269. resultmap.put(HTTPRESULT, data);
  270. //关闭流
  271. EntityUtils.consume(entity);
  272. } catch (ParseException e) {
  273. // TODO Auto-generated catch block
  274. e.printStackTrace();
  275. } catch (IOException e) {
  276. // TODO Auto-generated catch block
  277. e.printStackTrace();
  278. }
  279. response=null;
  280. }
  281. }
  282. return resultmap;
  283. }
  284. /**
  285. * unicode转中文
  286. *
  287. * @Data:下午1:44:16
  288. * @Package:testhttpclient.testhttpclient
  289. * @Return:String
  290. * @Auth:diao
  291. */
  292. public static String decodeUnicode(final String dataStr) {
  293. int start = 0;
  294. int end = 0;
  295. final StringBuffer buffer = new StringBuffer();
  296. while (start > -1) {
  297. end = dataStr.indexOf("\\u", start + 2);
  298. String charStr = "";
  299. if (end == -1) {
  300. charStr = dataStr.substring(start + 2, dataStr.length());
  301. } else {
  302. charStr = dataStr.substring(start + 2, end);
  303. }
  304. // 16进制parse整形字符串。
  305. char letter = (char) Integer.parseInt(charStr, 16);
  306. buffer.append(new Character(letter).toString());
  307. start = end;
  308. }
  309. return buffer.toString();
  310. }
  311. /**
  312. * 获取请求头
  313. *
  314. * @Data:下午1:44:16
  315. * @Package:testhttpclient.testhttpclient
  316. * @Return:String
  317. * @Auth:diao
  318. */
  319. public Map<String,String>getCommHeader(){
  320. Map<String,String>headers=new HashMap<String, String>(16);
  321. headers.put("User-Agent","Mozilla/5.0(Window NT 6.1; WOW64; rv:58.0) Gecko/20100101 Firfox/58.0");
  322. headers.put("Accept","application/json,text/plain,*/*");
  323. headers.put("Accept-Language","zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2");
  324. headers.put("Accept-Encoding","gzip,deflate");
  325. headers.put("Connection","keep-alive");
  326. return headers;
  327. }
  328.  
  329. public void test(String ip,int port,String jobid)
  330. {
  331. String url=String.format("http://%s:%d/jobs/%s/yarn-cancel",ip,port,jobid);
  332. HttpClientComm httpclient=new HttpClientComm();
  333. Map<String,String>header=new HashMap<String, String>(16);
  334. header.put("Host",ip+":"+port);
  335. header.put("Referer","http://"+ip+":"+port);
  336. Map<String,String>Resultmap=httpclient.get(url, header);
  337. String httpstatus=Resultmap.get(httpclient.HTTPSTATUS);
  338. String resultmap=Resultmap.get(httpclient.HTTPRESULT);
  339. if(httpstatus.isEmpty()&&HttpStatusEnum.ACCEPTED.code()==Integer.parseInt(httpstatus))
  340. {
  341. //json解析
  342.  
  343. }
  344. }
  345.  
  346. }

所有状态枚举类

  1. package testhttpclient.testhttpclient;
  2.  
  3. /**
  4. *
  5. * @author sdzw
  6. *
  7. */
  8. public enum HttpStatusEnum {
  9. /**
  10. * 请继续发送请求的剩余部分
  11. */
  12. CONTINUE(100, "Continue", "请继续发送请求的剩余部分"),
  13.  
  14. SWITCHING_PROTOCOLS(101, "Switching Protocols", "协议切换"),
  15.  
  16. PROCESSING(102, "Processing", "请求将继续执行"),
  17.  
  18. // for 103 https://news.ycombinator.com/item?id=15590049
  19. CHECKPOINT(103, "Checkpoint", "可以预加载"),
  20.  
  21. OK(200, "OK", "请求已经成功处理"),
  22.  
  23. CREATED(201, "Created", "请求已经成功处理,并创建了资源"),
  24.  
  25. ACCEPTED(202, "Accepted", "请求已经接受,等待执行"),
  26.  
  27. NON_AUTHORITATIVE_INFORMATION(203, "Non-Authoritative Information", "请求已经成功处理,但是信息不是原始的"),
  28.  
  29. NO_CONTENT(204, "No Content", "请求已经成功处理,没有内容需要返回"),
  30.  
  31. RESET_CONTENT(205, "Reset Content", "请求已经成功处理,请重置视图"),
  32.  
  33. PARTIAL_CONTENT(206, "Partial Content", "部分Get请求已经成功处理"),
  34.  
  35. MULTI_STATUS(207, "Multi-Status", "请求已经成功处理,将返回XML消息体"),
  36.  
  37. ALREADY_REPORTED(208, "Already Reported", "请求已经成功处理,一个DAV的绑定成员被前一个请求枚举,并且没有被再一次包括"),
  38.  
  39. IM_USED(226, "IM Used", "请求已经成功处理,将响应一个或者多个实例"),
  40.  
  41. MULTIPLE_CHOICES(300, "Multiple Choices", "提供可供选择的回馈"),
  42.  
  43. MOVED_PERMANENTLY(301, "Moved Permanently", "请求的资源已经永久转移"),
  44.  
  45. FOUND(302, "Found", "请重新发送请求"),
  46.  
  47. // MOVED_TEMPORARILY(302, "Moved Temporarily", "") 已经过时
  48. SEE_OTHER(303, "See Other", "请以Get方式请求另一个URI"),
  49.  
  50. NOT_MODIFIED(304, "Not Modified", "资源未改变"),
  51.  
  52. USE_PROXY(305, "Use Proxy", "请通过Location域中的代理进行访问"),
  53.  
  54. // 306在新版本的规范中被弃用 TEMPORARY_REDIRECT(307, "Temporary Redirect", "请求的资源临时从不同的URI响应请求"),
  55. RESUME_INCOMPLETE(308, "Resume Incomplete", "请求的资源已经永久转移"),
  56.  
  57. BAD_REQUEST(400, "Bad Request", "请求错误,请修正请求"),
  58.  
  59. UNAUTHORIZED(401, "Unauthorized", "没有被授权或者授权已经失效"),
  60.  
  61. PAYMENT_REQUIRED(402, "Payment Required", "预留状态"),
  62.  
  63. FORBIDDEN(403, "Forbidden", "请求被理解,但是拒绝执行"),
  64.  
  65. NOT_FOUND(404, "Not Found", "资源未找到"),
  66.  
  67. METHOD_NOT_ALLOWED(405, "Method Not Allowed", "请求方法不允许被执行"),
  68.  
  69. NOT_ACCEPTABLE(406, "Not Acceptable", "请求的资源不满足请求者要求"),
  70.  
  71. PROXY_AUTHENTICATION_REQUIRED(407, "Proxy Authentication Required", "请通过代理进行身份验证"),
  72.  
  73. REQUEST_TIMEOUT(408, "Request Timeout", "请求超时"),
  74.  
  75. CONFLICT(409, "Conflict", "请求冲突"), GONE(410, "Gone", "请求的资源不可用"),
  76.  
  77. LENGTH_REQUIRED(411, "Length Required", "Content-Length未定义"),
  78.  
  79. PRECONDITION_FAILED(412, "Precondition Failed", "不满足请求的先决条件"),
  80.  
  81. REQUEST_ENTITY_TOO_LARGE(413, "Request Entity Too Large", "请求发送的实体太大"),
  82.  
  83. REQUEST_URI_TOO_LONG(414, "Request-URI Too Long", "请求的URI超长"),
  84.  
  85. UNSUPPORTED_MEDIA_TYPE(415, "Unsupported Media Type", "请求发送的实体类型不受支持"),
  86.  
  87. REQUESTED_RANGE_NOT_SATISFIABLE(416, "Requested range not satisfiable", "Range指定的范围与当前资源可用范围不一致"),
  88.  
  89. EXPECTATION_FAILED(417, "Expectation Failed", "请求头Expect中指定的预期内容无法被服务器满足"),
  90.  
  91. LOCKED(423, "Locked", "当前资源被锁定"),
  92.  
  93. FAILED_DEPENDENCY(424, "Failed Dependency", "由于之前的请求发生错误,导致当前请求失败"),
  94.  
  95. UPGRADE_REQUIRED(426, "Upgrade Required", "客户端需要切换到TLS1.0"),
  96.  
  97. PRECONDITION_REQUIRED(428, "Precondition Required", "请求需要提供前置条件"),
  98.  
  99. TOO_MANY_REQUESTS(429, "Too Many Requests", "请求过多"),
  100.  
  101. REQUEST_HEADER_FIELDS_TOO_LARGE(431, "Request Header Fields Too Large", "请求头超大,拒绝请求"),
  102.  
  103. INTERNAL_SERVER_ERROR(500, "Internal Server Error", "服务器内部错误"),
  104.  
  105. NOT_IMPLEMENTED(501, "Not Implemented", "服务器不支持当前请求的部分功能"),
  106.  
  107. BAD_GATEWAY(502, "Bad Gateway", "响应无效"),
  108.  
  109. SERVICE_UNAVAILABLE(503, "Service Unavailable", "服务器维护或者过载,拒绝服务"),
  110.  
  111. GATEWAY_TIMEOUT(504, "Gateway Timeout", "上游服务器超时"),
  112.  
  113. HTTP_VERSION_NOT_SUPPORTED(505, "HTTP Version not supported", "不支持的HTTP版本"),
  114.  
  115. VARIANT_ALSO_NEGOTIATES(506, "Variant Also Negotiates", "服务器内部配置错误"),
  116.  
  117. INSUFFICIENT_STORAGE(507, "Insufficient Storage", "服务器无法完成存储请求所需的内容"),
  118.  
  119. LOOP_DETECTED(508, "Loop Detected", "服务器处理请求时发现死循环"),
  120.  
  121. BANDWIDTH_LIMIT_EXCEEDED(509, "Bandwidth Limit Exceeded", "服务器达到带宽限制"),
  122.  
  123. NOT_EXTENDED(510, "Not Extended", "获取资源所需的策略没有被满足"),
  124.  
  125. NETWORK_AUTHENTICATION_REQUIRED(511, "Network Authentication Required", "需要进行网络授权");
  126. /**
  127. * 状态码
  128. */
  129. private final int code;
  130. /**
  131. * 中文含义
  132. */
  133. private final String reasonPhraseUS;
  134. /**
  135. * 英文含义
  136. */
  137. private final String reasonPhraseCN;
  138. /**
  139. * 某个数字代表的错误类型
  140. */
  141. private static final int
  142. INFORMATIONAL = 1,
  143. SUCCESSFUL = 2,
  144. REDIRECTION = 3,
  145. CLIENT_ERROR = 4,
  146. SERVER_ERROR = 5;
  147.  
  148. HttpStatusEnum(int code, String reasonPhraseUS, String reasonPhraseCN)
  149. {
  150. this.code = code;
  151. this.reasonPhraseUS = reasonPhraseUS;
  152. this.reasonPhraseCN = reasonPhraseCN;
  153. }
  154. public int code()
  155. {
  156. return code;
  157.  
  158. }
  159. public String reasonPhraseUS()
  160. {
  161. return reasonPhraseUS;
  162.  
  163. }
  164. public String reasonPhraseCN() { return reasonPhraseCN; }
  165. public static HttpStatusEnum valueOf(int code) {
  166. for (HttpStatusEnum httpStatus : values()) {
  167. if (httpStatus.code() == code) {
  168. return httpStatus;
  169. }
  170. } throw new IllegalArgumentException("No matching constant for [" + code + "]");
  171.  
  172. }
  173.  
  174. public boolean is1xxInformational()
  175. {
  176. return type() == INFORMATIONAL;
  177.  
  178. }
  179. public boolean is2xxSuccessful()
  180. {
  181. return type() == SUCCESSFUL;
  182.  
  183. }
  184. public boolean is3xxRedirection()
  185. {
  186. return type() == REDIRECTION;
  187.  
  188. }
  189. public boolean is4xxClientError()
  190. {
  191. return type() == CLIENT_ERROR;
  192.  
  193. }
  194. public boolean is5xxServerError()
  195. {
  196. return type() == SERVER_ERROR;
  197.  
  198. }
  199. private int type()
  200. {
  201. return (int) code / 100;
  202.  
  203. }
  204.  
  205. }

httpclient实现的get请求及post请求的更多相关文章

  1. JAVA发送HttpClient请求及接收请求结果

    1.写一个HttpRequestUtils工具类,包括post请求和get请求 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 2 ...

  2. java使用httpclient封装post请求和get的请求

    在我们程序员生涯中,经常要复用代码,所以我们应该养成时常整理代码的好习惯,以下是我之前封装的httpclient的post和get请求所用的代码: package com.marco.common; ...

  3. 如何使用HttpClient来发送带客户端证书的请求,以及如何忽略掉对服务器端证书的校验

    最近要做客户端和服务器端的双向认证,在客户端向服务器端发送带证书的请求这里有一点问题,网上的例子大多都不太好使,于是找了github上httpclient源代码中的例子改造了一下,终于弄明白了 git ...

  4. JAVA发送HttpClient请求及接收请求结果过程

    1.写一个HttpRequestUtils工具类,包括post请求和get请求 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 ...

  5. httpclient开启代理,获取java中请求的url

    背景:在httpclent做post或者get请求时,请求返回的数据总是和预想的不一致,但是有不知道怎么排查问题,经同事说httpclient可以设置代理,就可以获取请求前数据的一些问题,帮助我排查问 ...

  6. 封装HttpClient进行http请求与https请求

    一.https忽略证书 /** * 用于进行Https请求的HttpClient * * @author joey * */ public class SSLClient { public stati ...

  7. httpClient Post例子,Http 四种请求访问代码 HttpGet HttpPost HttpPut HttpDelete

    httpclient post方法 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 //----1. HttpPost request = new HttpPost(ur ...

  8. httpclient连接池在ES Restful API请求中的应用

    package com.wm.utils; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http ...

  9. 在ASP.NET Core中用HttpClient(三)——发送HTTP PATCH请求

    在前面的两篇文章中,我们讨论了很多关于使用HttpClient进行CRUD操作的基础知识.如果你已经读过它们,你就知道如何使用HttpClient从API中获取数据,并使用HttpClient发送PO ...

随机推荐

  1. 数据机构-折半查找法(二分查找法)-Python实现

    Python实现二分查找法(基于顺序表) class List: elem=[] #存储顺序表元素 last=-1 #设置初始为-1 SeqList = List() #创建一个顺序表 print(& ...

  2. 【Tomcat】性能优化

    一.JVM优化 1.内存优化. 2.垃圾回收策略优化. 二.server.xml的connector优化(connector是与HTTP请求处理相关的容器,三个容器的初始化顺序为:Server-> ...

  3. 使用iconv进行编码gb2312转utf8 转码失败的坑

    iconv 编码gb2312转utf8 转码失败的坑 使用背景 项目中使用thrift进行C#程序调用c++接口,其中的协议是通过json进行传输的,由于默认thrift使用utf8进行传输,而C#和 ...

  4. JS 判断是否是手机端并跳转操作

    JS 判断运行当前脚本的应用程序是否为手机端或者一些其他信息,在我的工作中遇到的不是十分频繁,被我的同事一问就给问住了,所以把之前找到的一些知识点整理出来,供大家参考,若哪里不对欢迎指出,我会及时的更 ...

  5. canvas-2lineJoin.html

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. jQuery:SP.NET Autocomplete Textbox Using jQuery, JSON and AJAX

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="jQueryAutocomp ...

  7. CSS之Medial Queries的另一用法:实现IE hack的方法

    所谓Medial Queries就是媒体查询. 随着Responsive设计的流行,Medial Queries可算是越来越让人观注了.他可以让Web前端工程实现不同设备下的样式选择,让站点在不同的设 ...

  8. 2017-12-05 JavaScript实现ZLOGO子集: 前进+转向

    在前文中文编程语言之Z语言初尝试: ZLOGO 4与相关讨论后, 萌生了用JavaScript编写类似语言以便在线编程的想法. 于是使用 @TKT2016 (知乎账号)的ZLOGO语法设计, 在编程语 ...

  9. 【备忘】SQL语句增加字段、修改字段、修改类型、修改默认值

    一.修改字段默认值 alter table 表名 drop constraint 约束名字 ------说明:删除表的字段的原有约束 alter table 表名 add constraint 约束名 ...

  10. Oracle 11g数据库的创建

    由于是自己自学Oracle,如果有问题,请大家指出,谢谢! Oracle提供了DBCA来创建数据库,对于初学者来说使用DBCA创建数据库简化了很多工作和设置,直接在交互界面即可实现所有的功能. 然而对 ...