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

how can i send system file to another api using @FeginClient

我必须使用 @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"
    }
]

我认为原因是这样的: 您设置了内容类型“multipart/form-data”,但您的参数类型是文件。请尝试为您的参数类型设置“MultipartFile”并重复。

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

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

我使用 RestTemplate 上传图像,它正在工作。

    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);