如何开启你的第一个httpClient程序呢?

打印 上一主题 下一主题

主题 869|帖子 869|积分 2607

转自:
 http://www.java265.com/JavaCourse/202205/3307.html
HttpClient:
        HttpClient 是Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议
   HTTP 协议是 Internet 上使用得最多、最重要的协议之一,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源。虽然在 JDK 的 java net包中已经提供了访问 HTTP 协议的基本功能,但是对于大部分应用程序来说,JDK 库本身提供的功能还不够丰富和灵活。HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。HttpClient 已经应用在很多的项目中,比如 Apache Jakarta 上很著名的另外两个开源项目 Cactus 和 HTMLUnit 都使用了 HttpClient。Commons HttpClient项目现已终止,不再开发。 它已被Apache HttpComponents项目里的HttpClient和HttpCore模块取代,它们提供了更好的性能和更大的灵活性。
 HttpClient 主要功能:
(1)实现了所有 HTTP 的方法(GET,POST,PUT,HEAD 等)
(2)支持自动转向
(3)支持 HTTPS 协议
(4)支持代理服务器
下文笔者讲述第一个HttpClient程序的开发示例分享,如下所示:
  1. 实现思路:
  2.     1.创建一个HttpClient
  3.         2.定义一个httpRequest
  4.         3.HttpClient.execute(request)
  5.         4.获取httpClient运行后的结果
复制代码
例:
      使用HttpClient编写的第一个文件下载程序
  1. package com.java265.other.httpClient;
  2. import java.io.ByteArrayOutputStream;
  3. import java.io.InputStream;
  4. import org.apache.hc.client5.http.classic.methods.HttpGet;
  5. import org.apache.hc.client5.http.impl.classic.CloseableHttpClient;
  6. import org.apache.hc.client5.http.impl.classic.CloseableHttpResponse;
  7. import org.apache.hc.client5.http.impl.classic.HttpClients;
  8. import org.apache.hc.core5.http.HttpEntity;
  9. public class HttpClient01 {
  10.         /*
  11.          * java265.com 第一个HttpClient示例
  12.          */
  13.         public static void main(String[] args) throws Exception {
  14.                 try (CloseableHttpClient httpclient = HttpClients.createDefault()) {
  15.                         HttpGet httpGet = new HttpGet("http://www.java265.com");
  16.                         InputStream in = null;
  17.                         ByteArrayOutputStream bos = new ByteArrayOutputStream();
  18.                         try (CloseableHttpResponse response1 = httpclient.execute(httpGet)) {
  19.                                 System.out.println(response1.getCode() + " " + response1.getReasonPhrase());
  20.                                 HttpEntity entity1 = response1.getEntity();
  21.                                 in = entity1.getContent();
  22.                                 byte[] buffer = new byte[1024];
  23.                                 int len = -1;
  24.                                 while ((len = in.read(buffer)) != -1) {
  25.                                         bos.write(buffer, 0, len);
  26.                                 }
  27.                                
  28.                                 System.out.println("output:" + bos.toString());
  29.                         }catch(Exception e) {
  30.                                 System.out.println("message:" + e.getMessage());
  31.                         }finally {
  32.                                  if(null != in) {
  33.                                                 in.close();
  34.                                  }
  35.                                  
  36.                                  if(null != bos) {
  37.                                                 bos.close();
  38.                                  }
  39.                         }
  40.                 }
  41.         }
  42. }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

用户国营

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表