最近项目中需要上传jar文件需求,需要调用远程服务实现,但是在这个过程中出现调用报错的问题,这里做下相关分析。
1.java中通过feign调用上传接口,结果报错,信息如下:
error:Current request is not a multipart request
分析:
这是因为Feign客户端在发送请求时没有将请求标记为multipart类型。
解决方式:
feign接口文件参数使用@RequestPart注解,该注解对于文件参数,声明这是multipart类型。
如下:
@PostMapping(value = "upload")
void importFile(@RequestPart("file") MultipartFile file, @RequestParam Long bizId);
2.再次尝试调用报Error converting request body
错误。
解决方法:
在feign接口的地方加上 consumes = MediaType.MULTIPART_FORM_DATA_VALUE。
如下:
@PostMapping(value = "upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
void importFile(@RequestPart("file") MultipartFile file, @RequestParam Long bizId);
这样就可以正常上传了。