java - Spring RestTemplate 将大文件转发到另一个服务

标签 java spring resttemplate

我正在尝试使用 spring 的 resttemplate 将作为输入流提取的大文件转发到另一个服务。我遵循了@artbristol 在本主题中给出的答案:How to forward large files with RestTemplate?

看起来它正在正确设置请求的主体(使用 charlesproxy 获取请求)。问题是我没有正确设置 header ,因为我相信我需要将内容类型设置为 multipart/formdata 我尝试通过在回调中添加它来尝试:

request.getHeaders().setContentType(
                new MediaType("multipart", "form-data"));

但在 http header 中,我仍然缺少边界,不确定如何设置它,而且我确定我可能缺少其他一些设置。

最佳答案

所以我能够弄清楚这一点。基本上我需要创建一个 Spring 消息转换器,它将接收输入流并写出到正文。我基本上还必须使用 Form Message Converter 来写出响应主体。

因此在 restTemplate 中我调用了一个添加消息转换器来添加新的输入流消息转换器。在回调中,我创建了一个多值映射,它接受一个字符串和输入流并将其包装在一个 HttpEntity 周围。然后我创建一个新的 Form Message 转换器实例并调用 write,传入请求和 mutlivaluemap。

关于java - Spring RestTemplate 将大文件转发到另一个服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22490660/

相关文章:

java - 如何在该本地主机 :8080/test/index. html 中打开我的资源?

java - AES Java 多线程异常

spring - 在带有 body 参数的RestTemplate发布请求上需要帮助吗?

java - 如何解决 java 6 ssl 错误

java - 为了避免异常,请禁用 SerializationFeature.FAIL_ON_EMPTY_BEANS)

java - 如何在java中对列表中最早的时间戳进行排序?

java - 如何在 Spring MVC 中使用带有属性名称的 Spring @RequestMapping 注解

java - 使用 Spring Security 的注册表单

Spring + hibernate 与 Spring Data JPA : Are they different?

使用 hadoop MiniDFSCluster 时出现 javax.management.InstanceAlreadyExistsException