当前位置: 首页 > 知识库问答 >
问题:

由于未为Standard ardMultipartFile类型的请求正文设置Content-Type“multipart/form-data”,因此无法上传文件

常业
2023-03-14

我有一个远程服务A来上传文件。我有服务B,它通过FeignClient调用服务A的上传API来上传文件

服务 A 中的方法定义类似于

    ResponseEntity<?> upload(@RequestPart("file") MultipartFile file) { }

服务B中的方法是

    @FeignClient(url = "http://localhost:5000/")
    public interface uploadService {

    @RequestMapping(method = RequestMethod.POST, value = "/serviceA/upload")
    @Headers("Content-Type: multipart/form-data")
    void uploadFile(@RequestPart("file") MultipartFile file);
}

我收到错误Content-Type“multipart/form data”not set for the request body of Type StandardMultipartFile

我已经尝试了https://github . com/spring-cloud/spring-cloud-网飞/issues/867和https://github.com/OpenFeign/feign-form上的大多数建议,但没有一个对我有效

共有2个答案

燕富
2023-03-14

如果您在测试中遇到问题,只需使用org.springframework.mock.web.MockMultipartFile,您可以在其中将content Type设置为constrator中的参数之一。

裴泰平
2023-03-14

我可以通过在RequestMapping中添加< code > consumes = " multipart/form-data " 来解决这个问题。原因是我混合了基于spring的注释和open feign注释。< code > @ Headers(" Content-Type:multipart/form-data ")与< code>Open feign配合使用。这里我使用的是spring-cloud-openfeign,它为openfeign提供了抽象,使其易于与spring框架组件集成。

    @FeignClient(url = "http://localhost:5000/")
    public interface uploadService {

    @RequestMapping(method = RequestMethod.POST, value = "/serviceA/upload" consumes = "multipart/form-data" )
     void uploadFile(@RequestPart("file") MultipartFile file);
    }
 类似资料:
  • 环境:Guzzle 6 Symfony 2.3 通过Guzzle POST请求上传多个文件应使用多部分请求完成。因此,我将$options数组配置为: ) 多部分数组中的资源是fopen()的结果。 并使用 使用已经创建的客户端。 在接受 Symfony 控制器方面,我无法发送文件: 然而,这两者: 在输入流上返回数据: 如何以Symfony方式进入接收控制器? 需要考虑的好奇心:控制器报告 我的

  • 问题内容: 我正在尝试使用go将图像从计算机上传到网站。通常,我使用bash脚本将文件和密钥发送到服务器: 它工作正常,但我正在尝试将此请求转换为我的golang程序。 http://matt.aimonetti.net/posts/2013/07/01/golang-multipart-file-upload- example/ 我尝试了此链接和许多其他链接,但是,对于我尝试的每个代码,服务器的

  • 问题内容: 我正在尝试使用伪装完成多部分文件上传,但似乎在任何地方都找不到很好的示例。我本质上希望HTTP请求类似于以下内容: 甚至… 我是否需要手动构建请求主体,包括生成多部分边界?考虑到此客户端可以执行的其他所有操作,这似乎有点过头了。 问题答案: 不,你没有。您只需要定义一种代理接口方法,将content-type指定为:multipart / form- data和其他信息,例如远程API

  • 我试图使用feign完成一个多部分文件上传,但是我似乎在任何地方都找不到一个好的例子。我基本上希望HTTP请求的结果类似如下: 或者甚至… 我需要手动构建请求体吗,包括生成多部分边界?考虑到这个客户端可以做的所有其他事情,这似乎有点过分。

  • 我正在尝试从我的电脑上传图像到一个使用Go的网站。通常,我使用一个bash脚本,向服务器发送一个文件和一个密钥:

  • 我有一个使用axios发送post请求的表单。问题在于,发送请求时使用的标题的内容类型为:multipart/form data。我的nodejsapi不喜欢这样,它给了我一个未定义的req。身体 我有其他使用相同技术的表单,它们可以工作,标题与预期的一样:Content-Type:application/json;字符集=UTF-8 张贴Content-Type: Multipart/form-