httpclient post方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//----1、
HttpPost request = new HttpPost(url);
// 先封装一个 JSON 对象
JSONObject param = new JSONObject();
param.put("name""rarnu");
param.put("password""123456");
// 绑定到请求 Entry
StringEntity se = new StringEntity(param.toString());
request.setEntity(se);
// 发送请求
HttpResponse httpResponse = new DefaultHttpClient().execute(request);
// 得到应答的字符串,这也是一个 JSON 格式保存的数据
String retSrc = EntityUtils.toString(httpResponse.getEntity());
// 生成 JSON 对象
JSONObject result = new JSONObject( retSrc);
String token = result.get("token");
  1. Http 四种请求访问代码 HttpGet HttpPost HttpPut HttpDelete
  2. 逻辑:
  3.  
  4. String url = "http://www.baidu.com";
  5.  
  6. //将要访问的url字符串放入HttpPost中
  7.  
  8. HttpPost httpPost = new HttpPost(url);
  9.  
  10. //请求头 放置一些修改http请求头和cookie
  11.  
  12. httpPost.setHeader("Accept", "application/json");
  13.  
  14. ......
  15.  
  16. //如果是HttpPost或者HttpPut请求需要在请求里加参数,而HttpGet或者HttpDelete请求则可以直接拼接到url字符串后面
  17.  
  18. //向HttpPost中加入参数
  19.  
  20. List<NameValuePair> values = new ArrayList<NameValuePair>();
  21.  
  22. values.add(new NameValuePair("id", "1"));
  23.  
  24. values.add(new NameValuePair("name", "xiaohong"));
  25.  
  26. httpPost.setEntity(new UrlEncodeFormEntity(values, HTTP.UTF_8)); //进行转码
  27.  
  28. //实例HttpClient 并执行带有HttpPost的方法,返回HttpResponse 响应,再进行操作
  29.  
  30. HttpClient httpClient = new DefaultHttpClient();
  31.  
  32. HttpResponse httpResponse = httpClient.execute(httpPost);
  33.  
  34. int statusCode = httpResponse.getStatusLine().getStatusCode(); //返回状态码 ,用来进行识别或者判断访问结果
  35.  
  36. if(statusCode == 200){
  37.  
  38.   Instream in = httpResponse.getEntity().getContent(); //要处理该数据流是否为GZIP流
  39.  
  40. }
  41.  
  42. 示例代码如下:
  43.  
  44. package cn.dratek.haoyingsheng.manager.client;
  45.  
  46. import cn.dratek.haoyingsheng.manager.util.ResourceUtil;
  47. import net.dratek.browser.http.Cookie;
  48. import net.dratek.browser.http.CookieManager;
  49. import net.dratek.browser.http.URL;
  50. import org.apache.http.*;
  51. import org.apache.http.client.entity.UrlEncodedFormEntity;
  52. import org.apache.http.client.methods.HttpDelete;
  53. import org.apache.http.client.methods.HttpGet;
  54. import org.apache.http.client.methods.HttpPost;
  55. import org.apache.http.client.methods.HttpPut;
  56. import org.apache.http.impl.client.DefaultHttpClient;
  57. import org.apache.http.protocol.HTTP;
  58.  
  59. import java.io.IOException;
  60. import java.io.InputStream;
  61. import java.io.UnsupportedEncodingException;
  62. import java.util.List;
  63.  
  64. public class HttpNetClient {
  65. /**
  66. * 所有get 请求底层调用方法
  67. *
  68. * @param url 请求url
  69. * @return byte[] response data
  70. */
  71. public static byte[] doGet(String url) {
  72. InputStream in;
  73. byte[] bre = null;
  74. HttpResponse response;
  75. CookieManager manager = CookieManager.getInstance();
  76. if (url != null && url.length() != 0) {
  77. URL myURL = URL.parseString(url);
  78. Cookie[] cookies = manager.getCookies(myURL);
  79. HttpGet httpGet = new HttpGet(url);
  80. if (cookies != null && cookies.length > 0) {
  81. StringBuilder sb = new StringBuilder();
  82. for (Cookie ck : cookies) {
  83. sb.append(ck.name).append('=').append(ck.value).append(";");
  84. }
  85. String sck = sb.toString();
  86. if (sck.length() > 0) {
  87. httpGet.setHeader("Cookie", sck);
  88. }
  89.  
  90. }
  91. httpGet.setHeader("Accept-Encoding", "gzip, deflate");
  92. httpGet.setHeader("Accept-Language", "zh-CN");
  93. httpGet.setHeader("Accept", "application/json, application/xml, text/html, text/*, image/*, */*");
  94. try {
  95. response = new DefaultHttpClient().execute(httpGet);
  96. if (response != null) {
  97. int statusCode = response.getStatusLine().getStatusCode();
  98. if (statusCode == 200 || statusCode == 403) {
  99. Header[] headers = response.getHeaders("Set-Cookie");
  100. if (headers != null && headers.length > 0) {
  101. for (Header header : headers) {
  102. manager.setCookie(myURL, header.getValue());
  103. }
  104. }
  105. in = response.getEntity().getContent();
  106. if (in != null) {
  107. bre = ResourceUtil.readStream(in);
  108. }
  109.  
  110. }
  111. }
  112.  
  113. } catch (IOException e) {
  114. e.printStackTrace();
  115. }
  116. }
  117.  
  118. return bre;
  119.  
  120. }
  121.  
  122. /**
  123. * 所有Post 请求底层调用方法
  124. *
  125. * @param url 请求url
  126. * @param values 传递的参数
  127. * @return byte[] 返回数据 or null
  128. */
  129. public static byte[] doPost(String url, List<NameValuePair> values) {
  130. System.out.println("url = " + url);
  131. byte[] bytes = null;
  132. HttpResponse response;
  133. InputStream inputStream = null;
  134. CookieManager manager = CookieManager.getInstance();
  135. if (url != null && url.length() != 0) {
  136. URL myurl = URL.parseString(url);
  137. Cookie[] cookies = manager.getCookies(myurl);
  138. HttpPost post = new HttpPost(url);
  139. if (cookies != null && cookies.length > 0) {
  140. StringBuilder sb = new StringBuilder();
  141. for (Cookie ck : cookies) {
  142. sb.append(ck.name).append('=').append(ck.value).append(";");
  143. }
  144. String sck = sb.toString();
  145. if (sck.length() > 0) {
  146. post.setHeader("Cookie", sck);
  147. }
  148.  
  149. }
  150. post.setHeader("Accept-Encoding", "gzip, deflate");
  151. post.setHeader("Accept-Language", "zh-CN");
  152. post.setHeader("Accept", "application/json, application/xml, text/html, text/*, image/*, */*");
  153. DefaultHttpClient client = new DefaultHttpClient();
  154. try {
  155. if (values != null && values.size() > 0) {
  156. post.setEntity(new UrlEncodedFormEntity(values, HTTP.UTF_8));
  157. }
  158. response = client.execute(post);
  159. if (response != null) {
  160. int statusCode = response.getStatusLine().getStatusCode();
  161. if (statusCode == 200 || statusCode == 403) {
  162. Header[] headers = response.getHeaders("Set-Cookie");
  163. if (headers != null && headers.length > 0) {
  164. for (Header header : headers) {
  165. manager.setCookie(myurl, header.getValue());
  166. }
  167. }
  168. inputStream = response.getEntity().getContent();
  169. }
  170. }
  171.  
  172. } catch (UnsupportedEncodingException e) {
  173. e.printStackTrace();
  174. } catch (IOException e) {
  175. e.printStackTrace();
  176. }
  177. if (inputStream != null) {
  178. bytes = ResourceUtil.readStream(inputStream);
  179. }
  180. }
  181. return bytes;
  182. }
  183.  
  184. /**
  185. * PUT基础请求
  186. *
  187. * @param url 请求地址
  188. * @param values 提交参数
  189. * @return byte[] 请求成功后的结果
  190. */
  191. public static byte[] doPut(String url, List<NameValuePair> values) {
  192. byte[] ret = null;
  193.  
  194. CookieManager manager = CookieManager.getInstance();
  195. if (url != null && url.length() > 0) {
  196. URL myUrl = URL.parseString(url);
  197. StringBuilder sb = new StringBuilder();
  198. Cookie[] cookies = manager.getCookies(myUrl);
  199. if (cookies != null && cookies.length > 0) {
  200. for (Cookie cookie : cookies) {
  201. sb.append(cookie.name).append("=").append(cookie.value).append(";");
  202. }
  203.  
  204. }
  205. HttpPut request = new HttpPut(url);
  206. String sck = sb.toString();
  207. if (sck.length() > 0) {
  208. request.setHeader("Cookie", sck);
  209. }
  210. request.setHeader("Accept-Encoding", "gzip, deflate");
  211. request.setHeader("Accept-Language", "zh-CN");
  212. request.setHeader("Accept", "application/json, application/xml, text/html, text/*, image/*, */*");
  213.  
  214. DefaultHttpClient client = new DefaultHttpClient();
  215. if (values != null && values.size() > 0) {
  216. try {
  217. UrlEncodedFormEntity entity;
  218. entity = new UrlEncodedFormEntity(values);
  219. request.setEntity(entity);
  220. } catch (UnsupportedEncodingException e) {
  221. e.printStackTrace();
  222. }
  223. }
  224. try {
  225. HttpResponse response = client.execute(request);
  226. if (response != null) {
  227. StatusLine statusLine = response.getStatusLine();
  228. int statusCode = statusLine.getStatusCode();
  229. if (statusCode == 200 || statusCode == 403) {
  230. Header[] headers = response.getHeaders("Set-Cookie");
  231. if (headers != null && headers.length > 0) {
  232. for (Header header : headers) {
  233. manager.setCookie(myUrl, header.getValue());
  234. }
  235. }
  236. HttpEntity entity = response.getEntity();
  237. InputStream inputStream = entity.getContent();
  238. if (inputStream != null) {
  239. ret = ResourceUtil.readStream(inputStream);
  240. inputStream.close();
  241. }
  242. }
  243. }
  244. } catch (IOException e) {
  245. e.printStackTrace();
  246. }
  247. }
  248. return ret;
  249. }
  250.  
  251. /**
  252. * Delete基础请求
  253. *
  254. * @param url 请求地址
  255. * @return 请求成功后的结果
  256. */
  257. public static byte[] doDelete(String url) {
  258.  
  259. InputStream in;
  260. byte[] bre = null;
  261. HttpResponse response;
  262. CookieManager manager = CookieManager.getInstance();
  263. if (url != null && url.length() != 0) {
  264. URL myurl = URL.parseString(url);
  265. Cookie[] cookies = manager.getCookies(myurl);
  266. HttpDelete delete = new HttpDelete(url);
  267. if (cookies != null && cookies.length > 0) {
  268. StringBuilder sb = new StringBuilder();
  269. for (Cookie ck : cookies) {
  270. sb.append(ck.name).append('=').append(ck.value).append(";");
  271. }
  272. String sck = sb.toString();
  273. if (sck.length() > 0) {
  274. delete.setHeader("Cookie", sck);
  275. }
  276.  
  277. }
  278. delete.setHeader("Accept-Encoding", "gzip, deflate");
  279. delete.setHeader("Accept-Language", "zh-CN");
  280. delete.setHeader("Accept", "application/json, application/xml, text/html, text/*, image/*, */*");
  281. try {
  282. response = new DefaultHttpClient().execute(delete);
  283. if (response != null) {
  284. int statusCode = response.getStatusLine().getStatusCode();
  285. if (statusCode == 200 || statusCode == 403) {
  286. Header[] headers = response.getHeaders("Set-Cookie");
  287. if (headers != null && headers.length > 0) {
  288. for (Header header : headers) {
  289. manager.setCookie(myurl, header.getValue());
  290. }
  291. }
  292. in = response.getEntity().getContent();
  293. if (in != null) {
  294. bre = ResourceUtil.readStream(in);
  295. }
  296.  
  297. }
  298. }
  299.  
  300. } catch (IOException e) {
  301. e.printStackTrace();
  302. }
  303. }
  304.  
  305. return bre;
  306. }
  307.  
  308. }
  1. import java.io.IOException;
  2. import java.util.List;
  3. import javax.servlet.ServletInputStream;
  4. import javax.servlet.http.HttpServletRequest;
  5. import javax.servlet.http.HttpServletResponse;
  6. import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;
  7. import org.apache.commons.httpclient.HttpClient;
  8. import org.apache.commons.httpclient.HttpStatus;
  9. import org.apache.commons.httpclient.NameValuePair;
  10. import org.apache.commons.httpclient.methods.PostMethod;
  11. import org.apache.commons.httpclient.params.HttpMethodParams;
  12. import org.apache.commons.io.IOUtils;
  13. import org.dom4j.Document;
  14. import org.dom4j.DocumentException;
  15. import org.dom4j.DocumentHelper;
  16. import org.dom4j.Element;
  17. import org.slf4j.Logger;
  18. import org.slf4j.LoggerFactory;
  19. import org.springframework.stereotype.Controller;
  20. import org.springframework.web.bind.annotation.RequestMapping;
  21. import org.springframework.web.bind.annotation.RequestMethod;
  22. import com.eecn.warehouse.api.model.Address;
  23. import com.eecn.warehouse.api.model.User;
  24. import com.eecn.warehouse.utils.FoodBase;
  25. import com.frogsing.common.api.open.storage.hy.TCustomer;
  26. import com.frogsing.common.open.tools.xmlUtils;
  27. import com.google.common.collect.Lists;
  28. import com.thoughtworks.xstream.XStream;
  29. @Controller
  30. @RequestMapping(value = {"/api"})
  31. public class ApiAction {
  32. private static Logger logger = LoggerFactory.getLogger(ApiAction.class);
  33. public static final String SERVER_URL = "http://192.168.1.100/api/StorageApi";
  34. @RequestMapping(value = {"/StorageApi"}, method = RequestMethod.POST)
  35. public String storageApi(TCustomer model, HttpServletRequest request, HttpServletResponse response) throws DocumentException {
  36. String xml = request.getParameter("xml");
  37. String signature = request.getParameter("signature");
  38. //************************http client*******************//
  39. PostMethod postMethod = null;
  40. try {
  41. // 构造HttpClient的实例
  42. HttpClient httpClient = new HttpClient();
  43. // 设置连接超时
  44. httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(10000);
  45. // 设置字符集
  46. httpClient.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, "UTF-8");
  47. // 创建POST方法的实例
  48. postMethod = new PostMethod(SERVER_URL);
  49. // 使用系统提供的默认的恢复策略 该策略在碰到IO异常的时候将自动重试3次。
  50. postMethod.getParams().setParameter(HttpMethodParams.SO_TIMEOUT, 20000);
  51. // 异常时,重试处理器
  52. postMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler());
  53. //参数
  54. NameValuePair[] nameValuePairs = new NameValuePair[2];
  55. nameValuePairs[0] = new NameValuePair("xml", xml);
  56. nameValuePairs[1] = new NameValuePair("signature", signature);
  57. // 将参数加入到请求方法中
  58. postMethod.setRequestBody(nameValuePairs);
  59. // 发送连接
  60. int statusCode = httpClient.executeMethod(postMethod);
  61. if (statusCode == HttpStatus.SC_OK) {
  62. String result = postMethod.getResponseBodyAsString();
  63. logger.info("返回数据1:" + result);
  64. logger.info("字符集:" + postMethod.getResponseCharSet());
  65. String rspXml = new String(postMethod.getResponseBody(), "UTF-8");
  66. logger.info("返回数据2:" + rspXml);
  67. Document document = DocumentHelper.parseText(rspXml);
  68. Element signatureNode = (Element)document.selectSingleNode("//signature");
  69. Element dataNode = (Element)document.selectSingleNode("//data");
  70. String signXml = signatureNode.getText();
  71. String dataXml = dataNode.getText();
  72. String pureXml = FoodBase.decodeXml(dataXml);
  73. request.setAttribute("pureXml", pureXml);
  74. request.setAttribute("signXml", signXml);
  75. }
  76. } catch (Exception e) {
  77. logger.error("http client invoke error.", e);
  78. } finally {
  79. if (postMethod != null) {
  80. postMethod.releaseConnection();
  81. }
  82. }
  83. //******************************************************//
  84. ServletInputStream inputStream = null;
  85. String rspXml = null;
  86. try {
  87. inputStream = request.getInputStream();
  88. rspXml = IOUtils.toString(inputStream, "UTF-8");
  89. } catch (IOException e) {
  90. logger.error("读取交易仓单返回数据错误.", e);
  91. }
  92. return "api/storage";
  93. }
  94. @RequestMapping(value = {"/MarketApi"}, method = RequestMethod.POST)
  95. public String marketApi(HttpServletRequest request, HttpServletResponse response) {
  96. return "api/market";
  97. }
  98. public static void main(String[] args) {
  99. XStream xstream = new XStream();
  100. xstream.alias("User", User.class);
  101. xstream.alias("Address", Address.class);
  102. //xStream.aliasAttribute(User.class, "name", "name");
  103. xstream.useAttributeFor(User.class, "name");
  104. List<Address> addressList = Lists.newArrayList();
  105. for (int i = 0; i < 3; i++) {
  106. Address address = new Address();
  107. address.setProvince("浙江");
  108. addressList.add(address);
  109. }
  110. User user = new User();
  111. user.setAddressList(addressList);
  112. user.setAccount("asddaa");
  113. user.setAge(23);
  114. user.setGender(0);
  115. user.setName("zhang");
  116. System.out.println(xstream.toXML(user));
  117. System.out.println(xmlUtils.toEntityXml(user));
  118. }
  119. }

get方法类似。

 
 
 
 
 
 
 
 
 
 
 
 

1、httpclient4.3.4 读取网页内容

特别说明:StreamUtils  只是做了简单的关闭流操作,这个类可有自己写,或者直接调用流关闭操作 谢谢

  1. package com.haokuaisheng.https;
  2. import java.io.ByteArrayOutputStream;
  3. import java.io.InputStream;
  4. import java.util.Arrays;
  5. import java.util.List;
  6. import org.apache.http.Consts;
  7. import org.apache.http.Header;
  8. import org.apache.http.HttpEntity;
  9. import org.apache.http.NameValuePair;
  10. import org.apache.http.client.entity.UrlEncodedFormEntity;
  11. import org.apache.http.client.methods.CloseableHttpResponse;
  12. import org.apache.http.client.methods.HttpGet;
  13. import org.apache.http.client.methods.HttpPost;
  14. import org.apache.http.impl.client.CloseableHttpClient;
  15. import org.apache.http.impl.client.HttpClients;
  16. import org.apache.http.message.BasicHeader;
  17. import com.haokuaisheng.log.LogManager;
  18. import com.haokuaisheng.utils.StreamUtils;
  19. public class HttpUtils {
  20. final static Header HEADER_USER_AGENT = new BasicHeader( "user-agent" , "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2700.0 Safari/537.36");
  21. final static Header HEADER_CONNECTION = new BasicHeader( "connection" , "keep-alive");
  22. final static Header HEADER_CACHE_CONTROL = new BasicHeader( "cache-control" , "max-age=0");
  23. final static Header HEADER_ACCEPT = new BasicHeader( "accept" , "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");
  24. final static Header HEADER_ACCEPT_ENCODING = new BasicHeader( "accept-encoding" , "gzip, deflate, sdch");
  25. final static Header HEADER_ACCEPT_LANGUAGE = new BasicHeader( "accept-language" , "zh-CN,zh;q=0.8,en;q=0.6");
  26. /**
  27. * 发送get请求
  28. * @param url 请求的url链接
  29. * @param charSet该链接字符编码
  30. * */
  31. public static String requestGet(String url , String charSet , NameValuePair...nameValuePairs){
  32. CloseableHttpClient httpclient = HttpClients.createDefault();
  33. CloseableHttpResponse response = null ;
  34. try {
  35. HttpGet httpget = new HttpGet( url );
  36. httpget.setHeader( HEADER_USER_AGENT ) ;
  37. httpget.setHeader( HEADER_CONNECTION ) ;
  38. httpget.setHeader( HEADER_CACHE_CONTROL ) ;
  39. httpget.setHeader( HEADER_ACCEPT ) ;
  40. httpget.setHeader( HEADER_ACCEPT_ENCODING);
  41. httpget.setHeader( HEADER_ACCEPT_LANGUAGE);
  42. response = httpclient.execute( httpget ) ;
  43. if(response.getStatusLine().getStatusCode() == 200){
  44. HttpEntity entity = response.getEntity() ;
  45. return inputStreamToString( entity , charSet );
  46. }
  47. } catch (Exception e) {
  48. LogManager.err("requestGet:" + url , e) ;
  49. }finally{
  50. try {
  51. response.close();
  52. httpclient.close();
  53. } catch (Exception e) {
  54. }
  55. }
  56. return "" ;
  57. }
  58. /**
  59. * 发送post请求
  60. * @param url 请求的url链接
  61. * @param charSet该链接字符编码
  62. * */
  63. public static String requestPost(String url , String charSet , NameValuePair...nameValuePairs){
  64. CloseableHttpClient httpclient = HttpClients.createDefault();
  65. CloseableHttpResponse response = null ;
  66. try {
  67. HttpPost httpPost = new HttpPost( url );
  68. httpPost.setHeader( HEADER_USER_AGENT ) ;
  69. httpPost.setHeader( HEADER_CONNECTION ) ;
  70. httpPost.setHeader( HEADER_CACHE_CONTROL ) ;
  71. httpPost.setHeader( HEADER_ACCEPT ) ;
  72. httpPost.setHeader( HEADER_ACCEPT_ENCODING);
  73. httpPost.setHeader( HEADER_ACCEPT_LANGUAGE);
  74. List<namevaluepair> formparams = Arrays.asList( nameValuePairs );
  75. UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(formparams, Consts.UTF_8);
  76. httpPost.setEntity( formEntity ) ;
  77. response = httpclient.execute( httpPost ) ;
  78. if(response.getStatusLine().getStatusCode() == 200){
  79. HttpEntity entity = response.getEntity() ;
  80. return inputStreamToString( entity , charSet );
  81. }
  82. } catch (Exception e) {
  83. LogManager.err("requestPost:" + url , e) ;
  84. }finally{
  85. try {
  86. response.close();
  87. httpclient.close();
  88. } catch (Exception e) {
  89. }
  90. }
  91. return "" ;
  92. }
  93. private static String inputStreamToString(HttpEntity entity , String charSet)
  94. throws Exception{
  95. InputStream is = null ;
  96. ByteArrayOutputStream baos = new ByteArrayOutputStream();
  97. try {
  98. is = entity.getContent() ;
  99. byte[]bytes = new byte[52428800] ;
  100. int buffer = -1;
  101. while( (buffer = is.read(bytes)) != -1){
  102. baos.write(bytes, 0, buffer) ;
  103. }
  104. return new String(baos.toByteArray() , charSet ) ;
  105. }finally{
  106. StreamUtils.closeInput( is );
  107. StreamUtils.closeOutput( baos );
  108. }
  109. }
  110. public static void main(String[] args) {
  111. //String result = requestGet("http://127.0.0.1:8080/a/?age=19" ,  "UTF-8" );
  112. //LogManager.info("\n" + result.replace("
  113. ", "\n"));
  114. String result = requestGet("http://neihanshequ.com/" ,  "UTF-8" );
  115. LogManager.info("\n" + result.replace("
  116. ", "\n"));
  117. /*
  118. String result = requestPost("http://127.0.0.1:8080/a/" ,  "UTF-8" , new BasicNameValuePair("name" , "中文中文中文")
  119. ,  new BasicNameValuePair("age" , "19")  );
  120. LogManager.info(result.replace("
  121. ", "\n"));*/
  122. }
  123. }
  124. </namevaluepair>

采用jsoup-1.7.2. 和webmagic-core-0.5.2 jin

  1. package com.haokuaisheng.https;
  2. import java.util.List;
  3. import com.haokuaisheng.log.LogManager;
  4. import us.codecraft.webmagic.selector.Html;
  5. public class XPathUtils {
  6. public static void main(String[] args) throws Exception {
  7. String htmlStr = HttpUtils.requestGet("http://neihanshequ.com/", "UTF-8");
  8. Html html = new Html( htmlStr ) ;
  9. //List<String> titles = html.xpath( "//div[@class='post_item_body']/h3/a/text()" ).all() ;
  10. List<String> titles = html.xpath( "//span[@class='name']/text()" ).all() ;
  11. //List<String> bodys = html.xpath( "//div[@class='post_item_body']/p[@class='post_item_summary']/text()" ).all() ;
  12. List<String> bodys = html.xpath( "//h1[@class='title']/p/html()" ).all() ;
  13. int size = titles.size();
  14. for(int x=0; x<size; x++ ){
  15. String title = titles.get( x ) ;
  16. String body = bodys.get( x );
  17. LogManager.info("\n" +  title  + "-->" + body) ;
  18. }
  19. }

其它更深入:

http://www.th7.cn/Program/java/201605/859929.shtml

http://www.tuicool.com/articles/Unumeu

http://blog.csdn.net/binsweet/article/details/5861427

http://blog.csdn.net/csdnbsd/article/details/51850826

http://blog.csdn.net/kl28978113/article/details/51997201

http://blog.csdn.net/kl28978113/article/details/51997201

httpClient Post例子,Http 四种请求访问代码 HttpGet HttpPost HttpPut HttpDelete的更多相关文章

  1. Http 四种请求访问代码 HttpGet HttpPost HttpPut HttpDelete .

    String url = "http://www.baidu.com"; //将要访问的url字符串放入HttpPost中 HttpPost httpPost= new HttpP ...

  2. ajax参数传递之[HttpGet]/[HttpPost]/[HttpPut]/[HttpDelete]请求

    $.ajax({ type: "get", url: "http://localhost:27221/api/Charging/GetByModel", con ...

  3. 接口测试中模拟post四种请求数据

    https://www.jianshu.com/p/3b6d7aa2043a 一.背景介绍 在日常的接口测试工作中,模拟接口请求通常有两种方法,fiddler模拟和HttpClient模拟. Fidd ...

  4. HttpwebClient的四种请求方式

    最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来. 十年河东十年河西,莫欺少年穷.      本文旨在发布代码,供自己参考,也供大家参考,谢谢. 正题: Ht ...

  5. 【spring springmvc】这里有你想要的SpringMVC的REST风格的四种请求方式

    概述 之前的文章springmvc使用注解声明控制器与请求映射有简单提到过控制器与请求映射,这一次就详细讲解一下SpringMVC的REST风格的四种请求方式及其使用方法. 你能get的知识点 1.什 ...

  6. Vue 封装axios(四种请求)及相关介绍(十三)

    Vue 封装axios(四种请求)及相关介绍 首先axios是基于promise的http库 promise是什么? 1.主要用于异步计算 2.可以将异步操作队列化,按照期望的顺序执行,返回符合预期的 ...

  7. [技术博客]OKhttp3使用get,post,delete,patch四种请求

    OKhttp3使用get,post,delete,patch四种请求 1.okhttp简介 okhttp封装了大量http操作,大大简化了安卓网络请求操作,是现在最火的安卓端轻量级网络框架.如今okh ...

  8. thinkphp四种url访问方式详解

    本文实例分析了thinkphp的四种url访问方式.分享给大家供大家参考.具体分析如下: 一.什么是MVC thinkphp的MVC模式非常灵活,即使只有三个中和一个也可以运行. M -Model 编 ...

  9. thinkPHP四种URL访问方式(二)

    原文:thinkPHP四种URL访问方式(二) 四.url的4种访问方式      1.PATHINFO 模式 -- (重点) http://域名/项目名/入口文件/模块名/方法名/键1/值1/键2/ ...

随机推荐

  1. BZOJ1076奖励关题解

    链接 很容易想到状压,f[i][s]表示前i个选择的箱子集合为s的最大期望 果断wa了,因为有一些不合法的状态,譬如f[1][1111001]这样的状态 这样的状态不好排除,所以改用倒推 用f[i][ ...

  2. SPSS统计基础-均值功能的使用

    SPSS统计基础-均值功能的使用 均值过程计算一个或多个自变量类别中因变量的子组均值和相关的单变量统计.您也可以获得单因素方差分析.eta 和线性相关检验. 统计量.合计.个案数.均值.中位数.组内中 ...

  3. Android书架实现

    转自http://blog.csdn.net/wangkuifeng0118/article/details/7944215 书架效果: 下面先看一下书架的实现原理吧! 首先看一下layout下的布局 ...

  4. blogbeta1

    //html <!DOCTYPE html> blog 身高:170 体重:230 座右铭 再给我吃一口 关于我 微信 微博 标签 SM SP 重金求爹 2019/11/16 本人找爹,带 ...

  5. D3D10/11中的遮挡查询的使用

    原文:D3D10/11中的遮挡查询的使用       在D3D10/11中,有D3D10_QUERY/D3D11_QUERY接口,通过QUERY接口,我们可以查询GPU的一些状态,比如GPU的时间戳信 ...

  6. PHP实现打印出库单,有没有实现过?

    https://mp.weixin.qq.com/s/X3JldplICRq7KR0HNFcpuw 背景 有时候你在实现一个出库订单之类的功能模块,这里也有可能要你的站点也实现相应的打印出库单预览,今 ...

  7. kendo grid 使用小结

    需要注意的: 1. id,如果没有指定id则会导致create.update等操作无法正常使用. 头疼事项: 1. 服务端失败返回error数据.如果是编辑状态,还不能友好提示错误.当然可以使用大量代 ...

  8. iOS Animation 主流炫酷动画框架(特效)收集整理 #91

    https://github.com/sxyx2008/DevArticles/issues/91

  9. 如何创建一个非常酷的3D效果菜单

    http://www.cocoachina.com/ios/20150603/11992.html 原文地址在这里.原文 去年,读者们投票选出了Top5的iOS7最佳动画,当然也很想看到有关这些动画如 ...

  10. SDUT-3331_数据结构实验之串三:KMP应用

    数据结构实验之串三:KMP应用 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 有n个小朋友,每个小朋友手里有一些糖块, ...