httpcomponents 4.5.2 简单使用

HttpComponents 也就是以前的httpclient项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端/服务器编程工具包,并且它支持 HTTP 协议最新的版本和建议。不过现在的 HttpComponents 包含多个子项目,有:

  • HttpComponents Core

  • HttpComponents Client

  • HttpComponents AsyncClient

  • Commons HttpClient

以下列出的是 HttpClient 提供的主要的功能,要知道更多详细的功能可以参见 HttpClient 的主页。

  • 实现了所有 HTTP 的方法(GET,POST,PUT,HEAD 等)

  • 支持自动转向

  • 支持 HTTPS 协议

  • 支持代理服务器等

  • 支持Cookie


之前用的HttpClient的方法都失效了,比如 httpclinet =new DefaultHttpClient(); 不知道为啥包里80%的类都失效了,总是觉得创建一个httpclient实例会比较麻烦,记不住。所以整理了一下新的方式简单使用。

简单使用

导入jar包

<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
    <version>4.5.2</version>
</dependency>


get请求获取响应

CloseableHttpClient httpClient= HttpClients.createDefault();
HttpGet httpget = new HttpGet("http://www.baidu.com");
CloseableHttpResponse response = httpClient.execute(httpget);
HttpEntity httpEntity= response.getEntity();
String strResult= EntityUtils.toString(httpEntity);

post请求获取响应

HttpPost httpost = new HttpPost("https://www.baidu.com");
List <NameValuePair> nvps = new ArrayList <NameValuePair>();
nvps.add(new BasicNameValuePair("IDToken1", "username"));
nvps.add(new BasicNameValuePair("IDToken2", "password"));
httpost.setEntity(new UrlEncodedFormEntity(nvps, Consts.UTF_8));

HttpClient提供URIBuilder工具类来简化URIs的创建和修改过程。

URI uri = new URIBuilder()  
        .setScheme("http")  
        .setHost("www.google.com")  
        .setPath("/search")  
        .setParameter("q", "httpclient")  
        .setParameter("btnG", "Google Search")  
        .setParameter("aq", "f")  
        .setParameter("oq", "")  
        .build();  
HttpGet httpget = new HttpGet(uri);  
System.out.println(httpget.getURI())

模拟浏览器请求

httpget.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:39.0) Gecko/20100101 Firefox/39.0");

博客地址:http://my.oschina.net/wangnian


转载于:https://my.oschina.net/wangnian/blog/655199

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值