HttpClient 4 简明教程

如果你已经写好了一个 Restful API,你要怎么测试你的 API 是否正确呢? 你又要怎么发起到 Restful API 的连接呢?

如果你的项目需要使用第三方 API 服务,比如支付宝的支付功能,比如微信支付功能,作为 Java 开发者的你,要怎么连接到它们提供的 API 呢 ?

你要怎么在你的项目中发起一个 POST 请求,把一些数据推送到远程服务上呢?

你要怎么把一个文件上传到远程的服务器上呢?

当你把这些问题一个一个抛向百度的时候,看到的全都是千篇一律的 Apache HttpClient。

虽然,即使也有不少其它的推荐,比如说比如可以使用 java.net 这个 JDK 自带的包,比如说可以使用 AsyncTaskLoaderHttpURLConnectionAsyncTask。但,它们都不是最佳的选择。

如果你从事 Android 开发,那可选择的就更多了。

面对这些选项,你会做如何选择呢?

其实没得选择,因为看来看去 HttpClient 是不二之选。

忘了那么多的优缺点比较吧,你要的,只不过是一个能够发起 HTTP GET 请求,一个能够发起 HTTP POST 请求,一个能够能够上传 HTTP 文件的 Java HTTP 客户端库。这个库,HttpClient 是唯一的工程选择,没有其它。

说了那么多,那 HttpsClient 是何方神圣呢 ?

Apache HttpClient

HttpClient 是 Apache Jakarta Common 下的子项目,是一个可以提供高效的、最新的、功能丰富的支持 HTTP / HTTPS 协议的 Java 客户端编程工具包,支持最新的 HTTP / HTTPS 协议。

HttpClient 是基于 HttpCore 的 HTTP /1.1 兼容 HTTP 代理实现,为客户端身份验证,HTTP 状态管理和 HTTP 连接管理提供可重用的组件。

Apache HttpClient 的官方网址是 http://hc.apache.org/,当前的最新版本是 HttpClient 4.5.6 (GA)。 这个最新版本目前兼容到 Java 9

HttpClient 是什么?

  1. HttpClient 基于 HttpCore 的客户端 HTTP 传输库
  2. 基于传统( 阻塞 )I/O 。
  3. 基于内容不可知原则。
  4. HttpClient 不是浏览器。它是客户端 HTTP 传输库
  5. HttpClient 的目的是传输和接收HTTP消息

HttpClient 又不是什么?

  1. HttpClient 不会尝试处理内容,而是简单的把接收到的内容直接返回
  2. HttpClient 并不会执行嵌入在 HTML 页面中的 javascript
  3. HttpClient 甚至不会试图去猜测内容类型。
  4. 如果没有显式进行配置,HttpClient 甚至不会新格式化请求,或重写位置 URI,或做一些其他与 HTTP 传输无关的功能。

HttpClient 主要功能介绍

从刚刚的 HttpClient 做什么不做什么小节,我们知道 HttpClient 只做一件事,就是 HTTP 传输,简单来说,就是发起一个到指定服务器的请求,并返回服务器返回的响应。

这其实就是一个简单的 HTTP 请求响应,就是一个 HTTP 传输。

所以,从某些方面说,HttpClient 的功能都围绕 HTTP 传输展开:

  1. 实现了所有 HTTP 的方法( GET、POST、PUT、HEAD 等 )
  2. 支持 HTTP 301 和 HTTP 302 自动跳转
  3. 支持 HTTPS 协议
  4. 支持代理服务器
  5. 支持文件上传
  6. 支持多线程下载和断点续传

这么多功能,其实都是围绕 HTTP 展开。

说的再多也没用,反正,只要你想使用 Java 发起和接收一个 HTTP 请求响应,请立刻想到 HttpClient 就对了。

HttpClient 4 指南

关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.