# http-request
**Repository Path**: joker-pper/http-request
## Basic Information
- **Project Name**: http-request
- **Description**: 对httpclient进行一定封装,使一些常规请求操作使用起来更简单
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2024-06-07
- **Last Updated**: 2025-07-18
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
> http-request
[](https://openjdk.java.net/)
[](https://central.sonatype.com/search?q=io.github.joker-pper:http-request)
[](https://central.sonatype.com/repository/maven-snapshots/io/github/joker-pper/http-request/maven-metadata.xml)
[](https://opensource.org/licenses/Apache-2.0)
- 使用httpclient对部分常用方式进行封装,无需关注过多细节
- 通过链式进行请求参数的设置,获取http方法对应的请求执行结果
- v1.0.1: 提供handler进行自定义解析结果(存在时不再默认填充body数据)或用于大文件的处理
- v1.0.2: 提供callback可进行自定义增加或覆写client request config;支持postman bulk data数据解析
- v1.0.3: Delete方法增加支持 formParameter 和 fileParameter
- v1.0.4: PResponse增加clear方法、ZRequest增加close方法;提供全局/当前设置default request config进行统一设置默认参数;提供全局设置default httpClient config callback;
增加RequestConfig参数:
queryParameterNotWithUrlEncoded: 控制queryParameter是否通过UrlEncoded的方式进行格式化
brotliContentDecoderTextEnabled: contentEncoding为br时获取text是否进行解码
> 引入方式
io.github.joker-pper
http-request
TAG
----------
> 函数
`v1.0.1: PResponse doHead(HeadRequestConfig requestConfig)`
`PResponse doGet(GetRequestConfig requestConfig)`
`PResponse doPost(PostRequestConfig requestConfig)`
`PResponse doPut(PutRequestConfig requestConfig)`
`PResponse doPatch(PatchRequestConfig requestConfig)`
`PResponse doDelete(DeleteRequestConfig requestConfig)`
> 使用方式
PResponse response = ZRequest.of().doGet(requestConfig);
int statusCode = response.getStatusCode();
String text = response.getText();
String utf8Text = response.getText("utf-8");
InputStream inputStream = response.getContent();
response.writeTo(new FileOutputStream("xxx"));
byte[] body = response.getBody();
> 备注
queryParameter -> 拼接到url后面(All)
formParameter -> 非requestBody时添加(Post,Put,Patch,Delete)
requestBody -> requestBody时添加(Post,Put,Patch,Delete)
fileParameter -> 非requestBody时添加(Post,Put,Patch,Delete)
优先级 -> requestBody > fileParameter > formParameter
存在requestBody时fileParameter及formParameter会被忽略
> 拓展
提供增加或覆写client request config(v1.0.2)
```
PostRequestConfig.of().setUrl("https://xxxx.com").setConfigCallback(new RequestConfigCallback() {
@Override
public void execute(RequestConfig.Builder builder) {
builder.setCircularRedirectsAllowed(true).setMaxRedirects(10);
}
});
```
提供全局设置default request config(v1.0.4)
```
HttpClientUtils.setDefaultRequestConfig(RequestConfig.custom()
.setConnectTimeout(5000)
.setSocketTimeout(5000)
.setConnectionRequestTimeout(5000)
.build());
```
提供当前ZRequest设置default request config,优先级大于全局设置default request config(v1.0.4)
```
ZRequest.of(isIgnoreVerifySSL(boolean), RequestConfig.custom()
.setConnectTimeout(5000)
.setSocketTimeout(5000)
.setConnectionRequestTimeout(5000)
.build());
ZRequest.of(httpClient, RequestConfig.custom()
.setConnectTimeout(5000)
.setSocketTimeout(5000)
.setConnectionRequestTimeout(5000)
.build());
```
提供全局设置default httpClientSupport config callback,只对默认提供的HttpClient实例生效(v1.0.4)
```
HttpClientUtils.setDefaultHttpClientSupportConfigCallback(new HttpClientSupportConfigCallback() {
@Override
public void executeDefaultHttp(HttpClientBuilder builder) {
builder.setUserAgent(HttpConstants.USER_AGENTS[2]);
builder.setMaxConnTotal(500);
builder.setMaxConnPerRoute(60);
}
@Override
public void executeIgnoreVerifySSLHttp(HttpClientBuilder builder) {
builder.setUserAgent(HttpConstants.USER_AGENTS[2]);
builder.setMaxConnTotal(500);
builder.setMaxConnPerRoute(60);
}
});
```
> 相关文档
[HttpClientBuilder使用](docs/HttpClientBuilder使用.md)
> 其他
[http-request-server-demo](https://github.com/joker-pper/http-request-server-demo.git)
[test文件](https://github.com/joker-pper/http-request/blob/master/src/test/java/com/joker17/http/request/core/ZRequestTest.java)