如何解决当 Map 抛出错误时,通过带有文件的 spring feign 发送多部分/表单数据请求
我正在尝试将 multipart/form-data 请求作为不同类型的 Map 对象发送,如下所示。
public static Map<String,Object> RequestBody(MultipartFile multipartfile)
Map<String,Object> body = new HashMap<>();
body.put("to","abc@gmail.com");
body.put("to","xyz@gmail.com");
body.put("file",multipartfile);
return body;
end
现在尝试将此地图发送给伪装客户端。
MyClient.java
@FeignClient(name = "email",url = "${email_url}",configuration = Configuration.class)
public interface EmailClient {
@PostMapping(value = "/email/send",consumes = MULTIPART_FORM_DATA_VALUE)
Response sendEmail(@RequestBody Map<String,?> requestBody);
}
我在发送请求时收到此编码错误
feign.codec.EncodeException: Getting multipart file's content bytes error
at feign.form.spring.SpringSingleMultipartFileWriter.write(SpringSingleMultipartFileWriter.java:47)
at feign.form.multipart.AbstractWriter.write(AbstractWriter.java:36)
at feign.form.MultipartFormContentProcessor.process(MultipartFormContentProcessor.java:87)
at feign.form.FormEncoder.encode(FormEncoder.java:105)
at feign.form.spring.SpringFormEncoder.encode(SpringFormEncoder.java:84)
at feign.ReflectiveFeign$BuildEncodedTemplateFromArgs.resolve(ReflectiveFeign.java:372)
at feign.ReflectiveFeign$BuildTemplateByResolvingArgs.create(ReflectiveFeign.java:224)
at feign.SynchronousMethodHandler.invoke(SynchronousMethodHandler.java:74)
at feign.ReflectiveFeign$FeignInvocationHandler.invoke(ReflectiveFeign.java:103)
我已经为 feign 配置了 feign form 编码器,如果请求正文中没有文件,则请求发送成功。
Spring feign 客户端是否不支持这种类型的动态请求体?
我们如何实现这种伪装? RequestPart 无济于事,因为我需要在请求正文中动态发送文件也意味着文件发送请求对于每个请求都是动态的,例如 file1、file2..
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。