HttpClient4.5 get访问实例

转载自http://blog.csdn.net/u011179993/article/details/47150145

更多HttpClient4.5教程请访问点击打开链接

=====================================================================

问题:模拟浏览器访问新浪网http://www.sina.com.cn/并解析返回结果

一、分析

经过前面的学习,已经能掌握了GET请求并解析返回结果,如下图:



一个使用HttpClient4.5典型的GET访问步骤为:

1.构建HttpClient————–>首先你得有一个浏览器

2.构建请求(起始行、首部)

3.使用HttpClient执行请求

4.解析相应(起始行、首部、实体)

另外还包括释放资源HttpClient、实体、响应


二、构建

下面就按照上面的步骤来进行构造

导入HttpClient4.5的库(本文用Eclipse4.4)


1.构建HttpClient

  1. CloseableHttpClient client=HttpClients.createDefault();  
CloseableHttpClient client=HttpClients.createDefault();

程序结尾需要关闭

client.close();

2.构建请求

  1. //请求起始行–HttpClient会根据信息自动构建  
  2. HttpGet get=new HttpGet(“http://www.sina.com.cn/”);  
  3. //请求首部–可选的,User-Agent对于一些服务器必选,不加可能不会返回正确结果  
  4. get.setHeader(”User-Agent”“Mozilla/5.0 (Windows NT 6.1; WOW64; rv:39.0) Gecko/20100101 Firefox/39.0”);  
  5. //执行请求  
  6. CloseableHttpResponse response=client.execute(get);  
//请求起始行--HttpClient会根据信息自动构建
HttpGet get=new HttpGet("http://www.sina.com.cn/");
//请求首部--可选的,User-Agent对于一些服务器必选,不加可能不会返回正确结果
get.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:39.0) Gecko/20100101 Firefox/39.0");
//执行请求
CloseableHttpResponse response=client.execute(get);

3.执行请求

  1. CloseableHttpResponse response=client.execute(get);  
CloseableHttpResponse response=client.execute(get);

  1. //获得起始行  
  2. System.out.println(response.getStatusLine().toString()+”\n”);  
  3. //获得首部—当然也可以使用其他方法获取  
  4. Header[] hs=response.getAllHeaders();  
  5. for(Header h:hs){  
  6.     System.out.println(h.getName()+”:\t”+h.getValue()+“\n”);  
  7. }  
  8. //获取实体  
  9. HttpEntity ety=response.getEntity();  
  10. System.out.println(EntityUtils.toString(ety,”GBK”));//新浪网的编码格式个GBK  
  11. EntityUtils.consume(ety);//释放实体  
  12.           
  13. response.close();//关闭响应  
//获得起始行
System.out.println(response.getStatusLine().toString()+"\n");
//获得首部---当然也可以使用其他方法获取
Header[] hs=response.getAllHeaders();
for(Header h:hs){
    System.out.println(h.getName()+":\t"+h.getValue()+"\n");
}
//获取实体
HttpEntity ety=response.getEntity();
System.out.println(EntityUtils.toString(ety,"GBK"));//新浪网的编码格式个GBK
EntityUtils.consume(ety);//释放实体

response.close();//关闭响应


三、完整的程序

为了方便观看,我直接在主函数上抛出异常了,真正写的时候需要try-catch-finally


返回结果:


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值