【发布时间】:2018-11-28 07:29:07
【问题描述】:
我正在尝试通过 feign 客户端调用 api 并通过 MultipartFile 上传文件以及一些字符串参数。
这是我的客户端代码:
package com.abc;
import feign.codec.Encoder;
@FeignClient(url = "https://xys.com", name = "uploadfile", configuration = UploadFileFeign.MultipartSupportConfig.class)
public interface UploadFileFeign {
@PostMapping(value = "leaveApplication", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public ObjectRestResponse<?> handleFileUpload(@RequestParam(value = "request") String request,
@RequestPart(value = "file") MultipartFile srcFile);
class MultipartSupportConfig {
@Bean
public Encoder feignFormEncoder() {
return new FeignSpringFormEncoder();
}
@Bean
public feign.Logger.Level multipartLoggerLevel() {
return feign.Logger.Level.FULL;
}
}
}
下面是我的客户端调用的 API 代码。
@RequestMapping(value="/services/leaveApplication", method=Request.POST, produces = MediaType.MULTIPART_FORM_DATA_VALUE, headers="Accept=application/json")
public ResponseOutput leaveApplication(@RequestParam("request") String request, @RequestParam(value = "file", required=false) MultipartFile srcFile) throws Exception {
}
但我收到错误回复: 403 - 禁止错误。 您无权访问 /services/leaveApplication
其他不涉及文件上传的api工作正常。
【问题讨论】:
标签: java api spring-mvc spring-boot feign