您的位置:首页 > 理论基础 > 计算机网络

【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



返回结果:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: