【HttpClient4.5实训】一.HttpClient4.5模拟浏览器GET请求访问新浪网(非原文教程)
2015-10-29 23:23
603 查看
更多HttpClient4.5教程请访问点击打开链接
=====================================================================
问题:模拟浏览器访问新浪网http://www.sina.com.cn/并解析返回结果
一、分析
经过前面的学习,已经能掌握了GET请求并解析返回结果,如下图:
一个使用HttpClient4.5典型的GET访问步骤为:
1.构建HttpClient-------------->首先你得有一个浏览器
2.构建请求(起始行、首部)
3.使用HttpClient执行请求
4.解析相应(起始行、首部、实体)
另外还包括释放资源HttpClient、实体、响应
二、构建
下面就按照上面的步骤来进行构造
导入HttpClient4.5的库(本文用Eclipse4.4)
1.构建HttpClient
[java] view
plaincopy
CloseableHttpClient client=HttpClients.createDefault();
程序结尾需要关闭
client.close();
2.构建请求
[java] view
plaincopy
//请求起始行--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.执行请求
[java] view
plaincopy
CloseableHttpResponse response=client.execute(get);
[java] view
plaincopy
//获得起始行
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
返回结果:
=====================================================================
问题:模拟浏览器访问新浪网http://www.sina.com.cn/并解析返回结果
一、分析
经过前面的学习,已经能掌握了GET请求并解析返回结果,如下图:
一个使用HttpClient4.5典型的GET访问步骤为:
1.构建HttpClient-------------->首先你得有一个浏览器
2.构建请求(起始行、首部)
3.使用HttpClient执行请求
4.解析相应(起始行、首部、实体)
另外还包括释放资源HttpClient、实体、响应
二、构建
下面就按照上面的步骤来进行构造
导入HttpClient4.5的库(本文用Eclipse4.4)
1.构建HttpClient
[java] view
plaincopy
CloseableHttpClient client=HttpClients.createDefault();
程序结尾需要关闭
client.close();
2.构建请求
[java] view
plaincopy
//请求起始行--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.执行请求
[java] view
plaincopy
CloseableHttpResponse response=client.execute(get);
[java] view
plaincopy
//获得起始行
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
返回结果:
相关文章推荐
- 【HttpClient4.5中文教程】【第一章 :基础】1.1执行请求(二)
- 【HttpClient4.5中文教程】【第一章 :基础】1.1执行请求(一)
- 网络访问之json数据解析
- HTTP请求和数据安全
- 流媒体协议介绍(rtp/rtcp/rtsp/rtmp/mms/hls
- Apache 2.2主配置文件/etc/httpd/conf/httpd.conf配置解说
- HTTP
- 网络变压器
- 腾迅股票数据接口 http/javascript
- 详解iPhone应用中HTTP上传请求协议
- iOS开发网络篇—HTTP协议
- POJ Power Network (dinic)
- TCP/IP、Http、Socket的区别
- 用Node.js建HTTP服务器
- Linux_RHEL_设置网络
- android6.0不支持Httpclient的解决方法
- Socket编程实践(6) --TCP服务端注意事项
- linux tcpdump命令以及结果分析
- lightoj 1155 - Power Transmission 【多源多汇 拆点网络流】
- 黑马程序员-网络