使用HttpClient4.4 模拟http请求
来源:互联网 发布:用友t3重装恢复数据 编辑:程序博客网 时间:2024/05/18 02:59
3、使用HttpClient进行网络处理的基本步骤
(1)通过get的方式获取到Response对象。
CloseableHttpClient httpClient = HttpClients.createDefault(); HttpGet httpGet = new HttpGet("http://www.baidu.com/"); CloseableHttpResponse response = httpClient.execute(httpGet);
注意,必需要加上http://的前缀,否则会报:Target host is null异常。
注:HttpClient将Response的正文及Request的POST/PUT方法中的正文均封装成一个HttpEntity对象。可以通过entity.getContenType(),entity.getContentLength()等方法获取到正文的相关信息。但最重要的方法是通过getContent()获取到InputStream对象。
(3)通过Entity获取到InputStream对象,然后对返回内容进行处理。
package com.test.demo;import java.io.IOException;import java.io.InputStream;import java.io.PrintWriter;import java.io.Writer;import java.util.Scanner;import org.apache.http.HttpEntity;import org.apache.http.HttpStatus;import org.apache.http.client.ClientProtocolException;import org.apache.http.client.HttpClient;import org.apache.http.client.methods.CloseableHttpResponse;import org.apache.http.client.methods.HttpGet;import org.apache.http.impl.client.CloseableHttpClient;import org.apache.http.impl.client.HttpClients;public class GetPostDemo {public static void main(String args[]){CloseableHttpClient httpclient = HttpClients.createDefault();HttpGet httpGet = new HttpGet("http://v.polyv.net/uc/cata/list?cataid=1"); try {CloseableHttpResponse response = httpclient.execute(httpGet);System.out.println("----------------"+response);/** * 注:HttpClient将Response的正文及Request的POST/PUT方法中的正文均封装成一个HttpEntity对象。 * 可以通过entity.getContenType(),entity.getContentLength()等方法获取到正文的相关信息。 * 但最重要的方法是通过getContent()获取到InputStream对象。 */HttpEntity entity3 = response.getEntity(); System.out.println("----------------"+entity3);System.out.println("----------------"+entity3.getContentType());System.out.println("----------------"+entity3.getContentLength());System.out.println("----------------"+entity3.getContent());InputStream is = null; Scanner sc = null; Writer os = null; if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { try { // 2、获取response的entity。 HttpEntity entity = response.getEntity(); // 3、获取到InputStream对象,并对内容进行处理 is = entity.getContent(); sc = new Scanner(is); // String filename = path.substring(path.lastIndexOf('/')+1); //String filename = "d:\\2.txt"; //os = new PrintWriter(filename); String contentStr=""; while (sc.hasNext()) { //os.write(sc.nextLine()); contentStr=contentStr+sc.nextLine(); //System.out.println("------"+sc.nextLine()); } System.out.println("------"+contentStr); } catch (ClientProtocolException e) { e.printStackTrace(); } finally { if (sc != null) { sc.close(); } if (is != null) { is.close(); } if (os != null) { os.close(); } if (response != null) { response.close(); } } } } catch (ClientProtocolException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();} }}
0 0
- 使用HttpClient4.4 模拟http请求
- HttpClient4之模拟http请求
- 使用HttpClient4.3.1模拟Http请求与无信任证书访问Https
- 使用HttpClient4.5 PoolingHttpClientConnectionManager 提交Http请求
- httpclient4.4 http摘要认证请求
- HttpClient4使用(模拟登陆)
- 使用fiddler模拟http请求
- 使用fiddler模拟http请求
- 使用socket模拟Http请求
- 使用fiddler模拟http请求
- 使用fiddler模拟http请求
- 使用fiddler模拟http请求
- 使用fiddler模拟http请求
- 使用fiddler模拟http请求
- HttpClient4.5 使用http连接池发送http请求深度示例
- HttpClient4.5 使用http连接池发送http请求深度示例
- 使用httpclient4.3.X模拟post请求登陆网站获取cookie信息的操作
- 使用java代码模拟HTTP请求
- 关于技术人员的思考
- 2.2.1Add Two Numbers
- Kint,微型、高效的PHP的Debug类库
- cannot be resolved or is not a field错误解决
- Android Studio在Ubuntu的安装过程
- 使用HttpClient4.4 模拟http请求
- spring+jpa 多模块开发+集成测试
- JavaScript函数和事件
- 【他山之石】【Matrix67】 什么是P问题、NP问题和NPC问题
- 支持向量机(四)
- Centos安装hdparm测试硬盘性能
- 颜色迁移之五——自适应迁移算法
- 大数的十进制转换成二进制(C语言)
- 什么是double write: