当前位置: 首页 / 技术干货 / 正文
好程序员Java培训分享使用HttpClient抓取页面内容

2019-11-23

JavaEE Java培训 好程序员

好程序员Java培训分享使用HttpClient抓取页面内容,使用HttpClient工具来发送Http请求

1.简介

HttpClient Apache Jakarta Common 下的子项目,用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。HttpClient 已经应用在很多的项目中,比如 Apache Jakarta 上很著名的另外两个开源项目 Cactus HTMLUnit 都使用了 HttpClient

HttpClient 相比传统 JDK 自带的 URLConnection,增加了易用性和灵活性,它不仅是客户端发送 HTTP 请求变得容易,而且也方便了开发人员测试接口(基于 HTTP 协议的),即提高了开发的效率,也方便提高代码的健壮性。因此熟练掌握 HttpClient 是很重要的必修内容,掌握 HttpClient 后,相信对于 HTTP 协议的了解会更加深入。

 

2.应用场景

图片1

 

3.HttpClient工具的使用

1)添加依赖

<!-- Apache Http Begin -->
<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
    <version>4.5.5</version>
</dependency>
<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>fluent-hc</artifactId>
    <version>4.5.5</version>
</dependency>
<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpmime</artifactId>
    <version>4.5.5</version>
</dependency>
<!-- Apache Http End -->

 

 

2)编写测试代码

  @Test
    public void testHttpClient() throws IOException {

        //1.获得HttpClient对象
        CloseableHttpClient client = HttpClients.createDefault();

        //2.创建请求对象,如果是post请求  HttpPost  如果是get请求  HttpGet对象
        String uri = "http://www.baidu.com";

        HttpGet get = new HttpGet(uri);
        //3.执行get请求,获得响应消息对象
        CloseableHttpResponse response = client.execute(get);

        //4.获取响应行
        StatusLine statusLine = response.getStatusLine();

        //5.获取状态码
        int code = statusLine.getStatusCode();

        if(code==200){
            //响应成功
            HttpEntity entity = response.getEntity();

            //6.获取响应体中的内容
//            InputStream is = entity.getContent();
//            byte[] b = new byte[8192];
//            int len = 0;
//            while((len = is.read(b))!=-1){
//                System.out.println(new String(b,0,len));
//            }
//            is.close();
            System.out.println(EntityUtils.toString(entity, "utf-8"));

        }


    }

 

 

好程序员公众号

  • · 剖析行业发展趋势
  • · 汇聚企业项目源码

好程序员开班动态

More+
  • HTML5大前端 <高端班>

    开班时间:2021-04-12(深圳)

    开班盛况

    开班时间:2021-05-17(北京)

    开班盛况
  • 大数据+人工智能 <高端班>

    开班时间:2021-03-22(杭州)

    开班盛况

    开班时间:2021-04-26(北京)

    开班盛况
  • JavaEE分布式开发 <高端班>

    开班时间:2021-05-10(北京)

    开班盛况

    开班时间:2021-02-22(北京)

    开班盛况
  • Python人工智能+数据分析 <高端班>

    开班时间:2021-07-12(北京)

    预约报名

    开班时间:2020-09-21(上海)

    开班盛况
  • 云计算开发 <高端班>

    开班时间:2021-07-12(北京)

    预约报名

    开班时间:2019-07-22(北京)

    开班盛况
IT培训IT培训
在线咨询
IT培训IT培训
试听
IT培训IT培训
入学教程
IT培训IT培训
立即报名
IT培训

Copyright 2011-2023 北京千锋互联科技有限公司 .All Right 京ICP备12003911号-5 京公网安备 11010802035720号