feignClint 上传多个文件
我重写了springEncoder,因为他不支持文件的上传,代码如下:
public class MfgFormAndObjectEncoder extends SpringEncoder {
public MfgFormAndObjectEncoder(ObjectFactory<HttpMessageConverters> messageConverters) {
super(messageConverters);
}
@Override
public void encode(Object requestBody, Type bodyType, RequestTemplate request)
throws EncodeException {
if (bodyType.equals(MultipartFile.class)) {
MultipartFile file = (MultipartFile) requestBody;
Map<String, Object> data = Collections.singletonMap(file.getName(), requestBody);
new SpringMultipartEncodedDataProcessor().process(data, request);
} else {
super.encode(requestBody, bodyType, request);
}
}
}
我用了SpringMultipartEncodedDataProcessor()的方法去处理type为MultipartFile的参数,这个代码也是从feign.form.spring下面拷贝过来的,现在我想处理多文件,传进来的bodyType为List<MultipartFile>,对这个Type不是很熟悉,我要怎样判断这个type是不是List<MultipartFile>
尝试了用bodyType.equals(Collection.class)不行,用bodyType.typeName只能equals“List<MultipartFile>”这个string,不是很好。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
请复习反射先内容;