我对此案有疑问,希望有人能帮助我。
所以我嘲笑了获取服务器:
@GetMapping(value = "/getMsgFileExt",
produces = MediaType.MULTIPART_FORM_DATA_VALUE)
public ResponseEntity<MultiValueMap<String, Object>> getMsgFileExt() throws IOException {
MultiValueMap<String, Object> formData = new LinkedMultiValueMap<>();
Path path = Paths.get("C:\\Users\\User\\IdeaProjects\\ccgw_sources\\TKmock\\src\\main\\resources\\test.txt.zip.total.zip");
formData.add("xml", respDataMsgInfo);
formData.add("zip", Base64.getEncoder().encodeToString(Files.readAllBytes(path)));
return new ResponseEntity<>(formData, HttpStatus.OK);
}
客户端的接收者:
String uri = String.format("%s/getMsgFileExt", customsUrl);
UriComponents builder = UriComponentsBuilder.fromHttpUrl(uri)
.queryParam("id", id)
.build();
ResponseEntity<MultiValueMap<String, Object>> response = customsCardRestTemplate.exchange(builder.toUriString(), HttpMethod.GET,
null,
new ParameterizedTypeReference<>() {});
MultiValueMap<String, Object> map = response.getBody();
但是我遇到了这个例外:
Could not extract response: no suitable HttpMessageConverter found for response type [org.springframework.util.MultiValueMap<java.lang.String, java.lang.Object>] and content type [multipart/form-data]
我已经阅读了这个主题RestTemplate & multipart/form-data response,但我确信 Spring Boot 有另一个解决方案。 或者也许我们有另一种方法来使用 xml 和 zip 发送/接收多部分?
您阅读过有关 Multipart 数据的 Spring 文档吗?这似乎是相关的(需要有 webflux 作为依赖项):
DefaultServerWebExchange 使用配置的 HttpMessageReader
> 解析 多部分/表单数据、多部分/混合和多部分/相关内容 进入多值映射。