博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【HttpClient4.5实训】一.HttpClient4.5模拟浏览器GET请求访问新浪网(非原文教程)
阅读量:4291 次
发布时间:2019-05-27

本文共 1248 字,大约阅读时间需要 4 分钟。

更多HttpClient4.5教程请访问

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

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

一、分析

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

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

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

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

3.使用HttpClient执行请求

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

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

二、构建

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

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

1.构建HttpClient

CloseableHttpClient client=HttpClients.createDefault();

程序结尾需要关闭

client.close();

2.构建请求

//请求起始行--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.执行请求

CloseableHttpResponse response=client.execute(get);
//获得起始行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"));//新浪网的编码格式个GBKEntityUtils.consume(ety);//释放实体		response.close();//关闭响应

三、完整的程序

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

返回结果:

你可能感兴趣的文章
redis如何防止并发?
查看>>
无备份情况下恢复MySQL误删的表,这样做再也不用怕误删了
查看>>
MySQL断电恢复的一点简单分析
查看>>
linux进程网络流量监控工具nethogs
查看>>
String.ValueOf和toString区别
查看>>
分布式补偿事务处理方案 / 分布式计算是如何控制事务的?
查看>>
SQL之常用小技巧第一篇
查看>>
java互联网架构-Mybatis缓存机制
查看>>
spring 更换数据库
查看>>
Java回调机制是什么意思?
查看>>
程序员须知:面试中最容易被问到的18个算法题(附答案!)
查看>>
IT界最真实的面试实录(第一弹)
查看>>
阿里云服务器部署方案(nginx+tomcat+mysql)
查看>>
Java分布式开发不得不知的Dubbo技术详细介绍
查看>>
很多人都没用过的轻量级Oracle数据库数据导出工具——性能超赞
查看>>
大白话讲解并发控制的悲观锁与乐观锁 / 高性能 MySQL 笔记
查看>>
javascript大量推送数据如何快速处理?
查看>>
一个关于 nolock 的故事
查看>>
关于数据库方面的面试技巧:如何从建表展现自己能力
查看>>
直击Redis持久化磁盘IO痛点,让存储不再有负担!
查看>>