Spring Cloud feign 多文件上传
https://blog.youkuaiyun.com/qq_32953079/article/details/81630817
在开发过程中除了文件内容通过postbody上传外,由于其他参数内容长度较大,导致服务器端不能接收,折腾了2天后通过如下方案解决:
1.将参数放到MultiValueMap中,包含MutipartFile和其他参数,增加各种类型的Writer数据写入
2.增加自定义MultiValueMapHttpMessageConverter实现HttpMessageConverter接口对MultiValueMap单独处理;
3.
@Configuration
public class FeignMultipartSupportConfig {
@Autowired
private ObjectFactory<HttpMessageConverters> messageConverters;
@Bean
public Encoder feignEncoder() {
return new SpringMultipartEncoder(new SpringEncoder(feignEncoder()));
}
public ObjectFactory<HttpMessageConverters> feignEncoder() {
HttpMessageConverters temp = new HttpMessageConverters();
//增加MultiValueMapHttpMessageConverter到messageConverters
temp.add(MultiValueMapHttpMessageConverter);
return () -> temp ;
}
}