最近,别的项目组提出需要SDK
,就利用Feign做了一个,在此期间发现上传文件是一个坑,正常的实现是无法支持文件上传,需要进行对资源有一个Convert
。为了避免大家像我一样,继续掉坑里,就出现了这篇文章的初衷。
入门
- 在SDK工程处,添加包依赖
1 | <dependency> |
- 在SDK工程处,创建一个Configuration
1 | import feign.codec.Encoder; |
期初在网上看到是使用下方的注入方式,一直不成功,在走头部路下,尝试了👆者方案成功了。
1 | "demo",configuration=MultipartSupportConfig.class) (name = |
- 修改接口
1 | "demo") (name = |
@RequestPart
与@RequestParam
效果是一样的,大家就不用花时间在这上面了。
- 修改服务器接口
1 |
|
- 在启动类添加
@EnableFeignClients
这个就不用多说了吧,😆
常见问题:
- HTTP Status 400 - Required request part ‘file’ is not present
请求文件参数的名称与实际接口接受名称不一致
- feign.codec.EncodeException: Could not write request: no suitable HttpMessageConverter found for request type [org.springframework.mock.web.MockMultipartFile] and content type [multipart/form-data]
转换器没有生效,检查一下
MultipartSupportConfig