通過 feign
調用文件服務提供者接口時,需傳輸 文件file
,服務調用者有時會報錯誤:feign.FeignException$BadRequest: status 400 reading
服務提供者會報 Required request part 'file' is not present
錯誤。
這是因為服務調用者MultipartFile的value跟服務提供者@RequestPart中的value值不一樣導致的。
在服務調用者MultipartFile的value要跟服務提供者的@RequestPart中的value值一樣。不然它會拋出400異常!!!
示例
服務調用者
@PostMapping("/xxx/file") public xx uploadOrderFilesToOSS(@ApiParam("附件") @RequestParam("file") MultipartFile[] file) { return xxxService.uploadOrderFilesToOSS(file); }
Feign
@PostMapping(value = "/file", produces = {MediaType.APPLICATION_JSON_UTF8_VALUE}, consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
xxx uploadSigleFile(@RequestParam("path") String path, @RequestPart("file") MultipartFile file);
服務提供者
@PostMapping(value = "/file", produces = {MediaType.APPLICATION_JSON_UTF8_VALUE}, consumes = MediaType.MULTIPART_FORM_DATA_VALUE) public xxx uploadSigleFile(@RequestParam("path") String path, @RequestPart("file") MultipartFile file) { return fileService.uploadFileToOSS(path, file); }