use*_*632 6 spring multipartform-data multipart resttemplate spring-boot
我想创建一个自定义边界来使用 Spring Rest 模板发送一些 json 数据和一些文件。我无法添加该自定义边界。我无法覆盖获取一些随机字符串作为边界值的默认行为。下面是我的代码片段。有人可以建议如何获得自定义边界吗?
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.MULTIPART_MIXED);
headers.set("boundary", "MyCustomboundary");
headers.set("accepts", "multipart/mixed");
MultiValueMap<String, Object> multipartRequest = new LinkedMultiValueMap<>();
Run Code Online (Sandbox Code Playgroud)
“为 JSON 部分创建 HttpEntity”
HttpHeaders jsonHeader = new HttpHeaders();
jsonHeader.setContentType(MediaType.APPLICATION_JSON);
jsonHeader.set( "Content-Disposition","form-data");
jsonHeader.set("boundary", "MyCustomboundary");
jsonHeader.set( "name","Metadata");
ContentDisposition contentDisposition = ContentDisposition
.builder("form-data")
.name("file")
.filename("FileName"))
.build();
JSONObject json = getJSONObject();
HttpEntity<String> jsonHttpEntity = new HttpEntity<>(json.toString(), jsonHeader);
Run Code Online (Sandbox Code Playgroud)
'为二进制部分创建 HttpEntity'
HttpHeaders pictureHeader = new HttpHeaders();
pictureHeader.set( "Content-Disposition","form-data");
pictureHeader.set( "name","Content");
pictureHeader.set("filename","FileNameTest");
pictureHeader.set("Content-Type", "application/octet-stream");
pictureHeader.set("boundary", "MyCustomboundary");
HttpEntity<ByteArrayResource> picturePart = new HttpEntity<>(new ByteArrayResource(multipartFile.getBytes()), pictureHeader);
Run Code Online (Sandbox Code Playgroud)
'将两个部分放在一个请求中'
multipartRequest.add("myAwesomeJsonData", jsonHttpEntity);
multipartRequest.add("file", picturePart);
HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(multipartRequest, headers);
ResponseEntity<String> response = restTemplate.exchange(
endPointURL,
HttpMethod.POST,
requestEntity,
String.class);
Run Code Online (Sandbox Code Playgroud)
**输出是这样的**
--xASRP9GvA7MfYQqgq0eVyQ2s1HCwMxm
内容处置:表单数据内容类型:application/json 边界:MyCustomboundary 名称:元数据内容长度:359
{"JSON 键":"值"} --xASRP9GvA7MfYQqgq0eVyQ2s1HCwMxm
内容处置:表单数据名称:内容文件名:output.pdf 内容类型:应用程序/八位字节流边界:MyCustomboundary 内容长度:4504
<-- 文件内容 -->
--xASRP9GvA7MfYQqgq0eVyQ2s1HCwMxm--
**但我希望它是**
--我的自定义边界
内容处置:表单数据内容类型:application/json 边界:MyCustomboundary 名称:元数据内容长度:359
{"JSON Key":"Value"} --MyCustomboundary
内容处置:表单数据名称:内容文件名:output.pdf 内容类型:应用程序/八位字节流边界:MyCustomboundary 内容长度:4504
<-- 文件内容 -->
--我的自定义边界--
“有人可以建议如何添加这个自定义边界吗?”
| 归档时间: |
|
| 查看次数: |
1950 次 |
| 最近记录: |