【发布时间】:2017-07-30 14:46:11
【问题描述】:
我在 Spring Framework 中使用 FormHttpMessageConverter。 为了通过restTemplate发送文件,我在我的项目中添加了FormHttpMessageConverter。
问题是服务器将文件询问字符串加密的内容类型我。 我必须使用 Content-type: multipart/form-data 发送文件,但他们询问“Content-type: multipart/form-data;”和 "boundary:XXXX".
所以我尝试在发送文件之前为边界设置一个值。但是,当 RestTemplate.exchage() 时,边界值被覆盖 原因是 FormHttpMessageConverter。 FormHttpMessageConverter 捕获了转换请求。 如果 Content-type 为 multipart/form-data,FormHttpMessageConverter 会通过此代码覆盖边界值。
我找不到避免这个问题的方法,所以我复制了链接处的代码,并制作了一个文件“xxxFormHttpMessageConverter”并修改了方法“writeMultipart”。
有人知道如何避免这种覆盖吗?
【问题讨论】:
-
在您链接的类中,
generateMultipartBoundary方法是protected,似乎正在做您想做的事。您仍然需要扩展该类,但只需使用固定的String覆盖这一方法,例如,"myCustomBoundary".getBytes()应该可以工作。 -
确实如此。我错过了
generateMultipartBoundary()受保护。谢谢!我会试试的。 -
好的。我试过这种方式。有用。这很有帮助。但是,通常每次调用时都会随机生成边界值。我不能确定这是正确的方法...
标签: java spring spring-mvc