带有文件和 JSON 对象的多部分请求

Posted

技术标签:

【中文标题】带有文件和 JSON 对象的多部分请求【英文标题】:Multipart request with file and JSON object 【发布时间】:2015-11-26 21:43:03 【问题描述】:

我试图创建将 Multipart 文件和 json 作为输入参数的函数。我写了这样的函数,这里是:

@RequestMapping(method = RequestMethod.PUT)
    public ResponseEntity<UserWithPhoto> update(@RequestHeader(value="Access-key") String accessKey,
                                         @RequestHeader(value="Secret-key") String secretKey,
                                         @RequestPart("user") String string,
                                         @RequestPart("photo") MultipartFile file) throws Exception
            User user = new ObjectMapper().readValue(string, User.class);

但问题是无法测试它。我像这样使用邮递员客户端并得到错误org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.web.multipart.MultipartException: Could not parse multipart servlet request; nested exception is java.lang.IllegalStateException: Unable to process parts as no multi-part configuration has been provided 我相信它,因为我没有设置邮递员写

【问题讨论】:

您在标头中缺少 Content-Type: multipart/related(但这可能不是唯一的问题) 【参考方案1】:

您是否尝试将 MultipartResolver 添加到您的 Spring MVC 配置中:

<bean id="multipartResolver"
    class="org.springframework.web.multipart.commons.CommonsMultipartResolver">

【讨论】:

是的,它从一开始就存在。问题是我将正文参数作为 http get 方法传递,我将其更改为 post 并且它现在可以工作。谢谢

以上是关于带有文件和 JSON 对象的多部分请求的主要内容,如果未能解决你的问题,请参考以下文章

如何从文件系统发送包含 json 字符串和大文件的多部分数据的 HTTP 请求?

带有 JSON 参数的多部分数据 Alamofire

在 IIS 上发布包含 jpg 和 json 的多部分请求会导致内部服务器错误和 win32 状态 64

带有多部分请求的 Spring Boot 不受支持的媒体类型

使用 json 数据和使用 afnetworking 的多部分请求

如何在颤动的多部分请求中发送对象列表?