HttpComponents (http 客户端) 常用类简介

简介: http://hc.apache.org/ 阿帕奇的开源项目。用于Http通信。 <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.1&l

http://hc.apache.org/
阿帕奇的开源项目。用于Http通信。
<dependency>
	<groupId>org.apache.httpcomponents</groupId>
	<artifactId>httpclient</artifactId>
	<version>4.5.1</version>
</dependency>

1.client

org.apache.http.client. HttpClient
接口。
CloseableHttpClient org.apache.http.impl.client.HttpClients. createDefault()
此方法可以拿到HttpClient对象。它是线程安全的。

2.request

org.apache.http. HttpRequest
接口。实现类有HttpGet、HttpPost等。
org.apache.http.client.methods. HttpUriRequest
继承了HttpRequest接口的接口。
void org.apache.http.message.AbstractHttpMessage. addHeader(String name, String value)
添加请求的头部信息。
org.apache.http.client.methods. HttpGet
代表HttpGet请求。
org.apache.http.client.methods. HttpPost
代表HttpPost请求。

2.1 get请求

org.apache.http.client.methods.HttpGet. HttpGet(String uri)
HttpGet请求的构造函数。

2.2 post请求

org.apache.http.client.methods.HttpPost. HttpPost(String uri)
HttpPost请求的构造函数。
org.apache.http.entity.StringEntity. StringEntity(String string) 
http报文body的格式是字符串。用于构造json、xml类post请求。

3.设置参数

Builder org.apache.http.client.config.RequestConfig. custom()
拿到builder。
Builder org.apache.http.client.config.RequestConfig.Builder. setSocketTimeout(int socketTimeout)
设置socket链接超时。
Builder org.apache.http.client.config.RequestConfig.Builder. setConnectionTimeout(int connectionRequestTimeout)
设置http连接超时。socket超时是http超时的充分不必要条件。
Builder org.apache.http.client.config.RequestConfig.Builder. setConnectionRequestTimeout(int connectionRequestTimeout)
设置请求发出前的超时时间。适用于用连接池,连接池占满的情况。
RequestConfig org.apache.http.client.config.RequestConfig.Builder. build()
至此拿到了RequestConfig 对象。
void org.apache.http.client.methods.HttpRequestBase. setConfig( RequestConfigconfig)
设置连接超时等在内的参数。RequestConfig对象的生成见下行。
RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(2000).build();

4.execute

CloseableHttpResponse org.apache.http.impl.client.CloseableHttpClient. execute(HttpUriRequest request) 
执行请求并返回结果,是同步函数,需要等待。

5.response

org.apache.http.client.methods. CloseableHttpResponse
接口。
StatusLine org.apache.http.HttpResponse. getStatusLine()
获取状态栏。
HttpEntity org.apache.http.HttpResponse. getEntity()
获取消息实体。
InputStream org.apache.http.HttpEntity. getContent()
获取内容。如果是文本数据,通常这样来拿。
Scanner scanner = new Scanner(instream, "utf-8");
void org.apache.http.util.EntityUtils. consume(HttpEntity entity) 
调用HttpEntity.getContent()就得到了InputStream,此方法用于把流消费完,然后关掉这个InputStream。

6.代码



相关文章
|
3月前
|
.net HTTP请求类封装
`HttpRequestHelper` 是一个用于简化 HTTP 请求的辅助类,支持发送 GET 和 POST 请求。它使用 `HttpClient` 发起请求,并通过 `Newtonsoft.Json` 处理 JSON 数据。示例展示了如何使用该类发送请求并处理响应。注意事项包括:简单的错误处理、需安装 `Newtonsoft.Json` 依赖,以及建议重用 `HttpClient` 实例以优化性能。
96 2
|
5月前
使用Netty实现文件传输的HTTP服务器和客户端
本文通过详细的代码示例,展示了如何使用Netty框架实现一个文件传输的HTTP服务器和客户端,包括服务端的文件处理和客户端的文件请求与接收。
128 1
使用Netty实现文件传输的HTTP服务器和客户端
|
5月前
|
API
使用`System.Net.WebClient`类发送HTTP请求来调用阿里云短信API
使用`System.Net.WebClient`类发送HTTP请求来调用阿里云短信API
76 0
|
7月前
|
深入解析Python `httpx`源码,探索现代HTTP客户端的秘密!
深入解析Python `httpx`源码,探索现代HTTP客户端的秘密!
142 1
|
8月前
|
golang的http客户端封装
golang的http客户端封装
161 0
常用工具类---SQL工具,HTTP工具
SQL工具,HTTP工具,两个实用小工具~~~
curl 使用:命令行中的 HTTP 客户端
`curl` 是命令行神器,用于与服务器交互,支持HTTP、HTTPS、FTP等协议。本文教你如何用它做POST请求(-d/--data)、GET请求(-G/-d)、JSON请求(-H &#39;Content-Type: application/json&#39;)和文件上传(-F)。学会这些,轻松测试API、自动化任务。现在就动手试试吧!
100 0
Axios是一个基于Promise的HTTP客户端
Axios是一个基于Promise的HTTP客户端
56 0
Python 的 requests 库是一个强大的 HTTP 客户端库,用于发送各种类型的 HTTP 请求
【6月更文挑战第15天】Python的requests库简化了HTTP请求。安装后,使用`requests.get()`发送GET请求,检查`status_code`为200表示成功。类似地,`requests.post()`用于POST请求,需提供JSON数据和`Content-Type`头。
78 6
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等