在Springboot项目中, 接口如何解析Content-Type为multipart/mixed的请求. 需要注意的是, 我的multipart/mixed请求并非上传文件, 而是传输多个部分的信息Part, 每个Part单独设置有Header和Body. 所以无法再Controller 通过@RequestPart获取到
以下为我的请求代码:
public class MultipartMixedRequestExample {
public static void main(String[] args) {
String url = "http://localhost:8787/http-proxy/"; // 替换为实际的目标 URL
// 创建HttpClient实例
CloseableHttpClient httpClient = HttpClients.createDefault();
// 创建HttpPost请求
HttpPost httpPost = new HttpPost(url);
// 创建MultipartEntityBuilder
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
builder.setMimeSubtype("mixed");
MultipartPart part1 = MultipartPartBuilder.create()
.addHeader("HC_A", "HC_A")
.addHeader("HC_B", "HC_B")
.setBody(new StringBody("Hello, World!111", ContentType.APPLICATION_JSON))
.build();
// 添加第一个部分
builder.addPart(part1);
// 添加第二个部分
MultipartPart part2 = MultipartPartBuilder.create()
.addHeader("HC_C", "HC_C")
.addHeader("HC_D", "HC_D")
.setBody(new StringBody("Hello, World!222", ContentType.APPLICATION_JSON))
.build();
// 添加第一个部分
builder.addPart(part2);
HttpEntity multipart = builder.build();
httpPost.setEntity(multipart);
// 发送请求并获取响应
try (CloseableHttpResponse response = httpClient.execute(httpPost)) {
// 处理响应
int statusCode = response.getCode();
System.out.println("Status Code: " + statusCode);
} catch (IOException e) {
e.printStackTrace();
} finally {
// 关闭HttpClient
try {
httpClient.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}