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

本文共 1289 字,大约阅读时间需要 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

[java] 
  1. CloseableHttpClient client=HttpClients.createDefault();  

程序结尾需要关闭

client.close();

2.构建请求

[java] 
  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);  

3.执行请求

[java] 
  1. CloseableHttpResponse response=client.execute(get);  

[java] 
  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();//关闭响应  


三、完整的程序

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

返回结果:

你可能感兴趣的文章
laravel事务
查看>>
springcloud 连续请求 500
查看>>
vue复用新增和编辑表单
查看>>
Ubuntu 16.04 apt-get更换为国内阿里云源
查看>>
laravel部署到宝塔步骤
查看>>
小程序获取access_token
查看>>
navicat远程连接mysql数据库
查看>>
tp5令牌数据无效 解决方法
查看>>
自己的网站与UCenter整合(大致流程)
查看>>
laravel 制作通用的curd 后台操作
查看>>
【小红书2017年笔试】求一个数组中平均数最大的子数组
查看>>
Linux基础系列-定时器与时间管理
查看>>
Linux基础系列-可执行程序的产生过程
查看>>
Linux基础系列-Kernel 初始化宏
查看>>
Linux子系统系列-I2C
查看>>
<iOS>关于自定义description的一点用法
查看>>
Unix 命令,常用到的
查看>>
DLL中建立进程共享数据段需要注意的语法问题
查看>>
服务器端技术----Http请求的处理过程
查看>>
C语言-预处理指令2-条件编译
查看>>