如何使用@feginclient将系统文件发送到另一个api

yacmzcpb  于 2021-06-27  发布在  Java
关注(0)|答案(3)|浏览(376)

我必须发送系统文件到我的其他服务使用 @FeignClient .

@RequestMapping(method = RequestMethod.POST, path = "v1/media")
@Headers({"Content-Type: multipart/form-data"})
void uploadMedia(@RequestHeader("refreshToken") String refreshToken, @RequestPart File FileName);

错误:

[
    {
        "message":"No file to upload!", 
        "errorCode":"InvalidParameters", 
        "errorCategoryKey":"InvalidParametersException"
    }
]
irtuqstp

irtuqstp1#

我认为最流行的方式是通过多部分文件上传文件

@RequestMapping(value = "/upload" method = RequestMethod.POST)
void uploadMedia(@RequestHeader("refreshToken") String refreshToken, @RequestPart MultipartFile file)
yqhsw0fo

yqhsw0fo2#

我认为原因是:您设置了内容类型“multipart/formdata”,但您的参数的类型是file。请尝试为参数的类型设置“multipartfile”并重复。

dkqlctbz

dkqlctbz3#

我使用rest模板上传图像,它的工作。

HttpHeaders headers = new HttpHeaders();
    headers.setContentType(MediaType.MULTIPART_FORM_DATA);
    headers.set("accessToken", accessToken);
    MultiValueMap<String, Object> body = new LinkedMultiValueMap<>();
    body.add("file", new FileSystemResource(new File("File.png")));
    HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(body, headers);
    String serverUrl = "/v1/media";
    RestTemplate restTemplate = new RestTemplate();
    ResponseEntity<MediaResource> response = restTemplate.postForEntity(serverUrl, requestEntity, MediaResource.class);
    System.out.println("Response code: " + response);

相关问题