feignClint 上传多个文件

发布于 2022-09-05 08:10:18 字数 1065 浏览 11 评论 0

我重写了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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

方觉久 2022-09-12 08:10:18

请复习反射先内容;

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文