ByteArrayOutputStream作为multipart / form-data RestTemplate

时间:2018-07-16 20:01:10

标签: java multipartform-data resttemplate spring-rest

我遇到一种情况,我需要从s3存储桶中获取一个图像并调用一个api将文件发布为MultipartFile以保存在其他系统中。我能够完成第一部分(从s3获取文件)。我将文件作为S3Object。之后,我从s3Object获得ByteArrayOutputStream作为

long size = s3Object.getObjectMetadata().getContentLength();
ByteArrayOutputStream stream = new ByteArrayOutputStream((int) size);
IOUtils.copy(s3Object.getObjectContent(), stream);

现在,如何调用使用上述数据接受多部分/表单数据的服务?我在下面做了,显然没用。

HttpEntity<ByteArrayOutputStream> requestEntity = new HttpEntity<>(stream, headers);
response = restTemplate.exchange(url, HttpMethod.POST, requestEntity, String.class);

错误如下:

org.springframework.web.client.RestClientException: Could not write request: no suitable HttpMessageConverter found for request type [java.io.ByteArrayOutputStream] and content type [multipart/form-data]
    at org.springframework.web.client.RestTemplate$HttpEntityRequestCallback.doWithRequest(RestTemplate.java:785) ~[spring-web-4.1.9.RELEASE.jar:4.1.9.RELEASE]

0 个答案:

没有答案