我如何使用@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);
我必须使用 @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);