springboot 需求:调用外部接口 外部接口的请求方式为post 请求头为Content-Type:multipart/form-data 如何使用HttpClients请求 httpclient的版本是4.5.14
时间: 2024-12-31 08:49:00 浏览: 49
在Spring Boot项目中,如果你想通过Apache HttpClient库(version 4.5.14)发送POST请求,同时处理Content-Type: multipart/form-data
类型的请求头,你可以按照以下步骤操作:
- 添加依赖: 首先,在你的项目的pom.xml文件中添加对HttpClient 4.x的支持(这里已经是4.5.14版本),如果还没有,加入如下内容:
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.14</version>
</dependency>
- 创建HttpClient实例:
使用
CloseableHttpClient
实例,并指定配置。
import org.apache.http.HttpHeaders;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.entity.mime.MultipartEntityBuilder;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
public CloseableHttpResponse sendMultipartPost(String url) throws Exception {
RequestConfig config = RequestConfig.custom()
.setConnectionRequestTimeout(3000)
// 设置超时时间
.build();
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
// 添加请求体部分,例如文件、表单数据等
builder.addBinaryBody("file", yourFileInputStream, ContentType.APPLICATION_OCTET_STREAM, "yourFileName");
HttpPost postMethod = new HttpPost(url);
postMethod.setHeader(HttpHeaders.CONTENT_TYPE, "multipart/form-data");
postMethod.setEntity(builder.build());
return httpClient.execute(postMethod, config);
}
private static final CloseableHttpClient httpClient = HttpClients.createDefault(); // 初始化一次即可
这里的yourFileInputStream
是你需要上传的文件流,yourFileName
是文件名,你需要替换为你实际的值。
处理响应: 调用
execute()
方法后,会返回一个CloseableHttpResponse
,你可以从中获取响应结果并进行后续处理。关闭资源: 当完成请求后,别忘了关闭
CloseableHttpResponse
和CloseableHttpClient
,释放连接资源。
try {
CloseableHttpResponse response = sendMultipartPost(url);
// ...处理响应...
} finally {
response.close();
httpClient.close();
}
相关推荐


















