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

Spring Boot REST多部分请求(file+json)引发415不受支持的媒体类型异常

翟迪
2023-03-14

我使用的是Spring Boot版本=1.5.2.Release。当我在邮递员中发送带有json对象的多部分文件到上传文件时,它抛出了415不受支持的媒体类型异常。

这是我的控制器类。

@RestController
@RequestMapping("/service/promotion/")
public class JobController {
....
....
....
@RequestMapping(value = "/job/test", method = RequestMethod.POST, produces = "application/json", consumes = "multipart/form-data")
public ResponseEntity<Object> createJobTest(@Valid @RequestBody JobRequest jobRequest,
            @RequestParam(value = "file", required = false) MultipartFile multiPartFile) throws Exception {

我的json请求类。

 public class JobRequest {
        private String campaignKey;
        private String communicationId;
        private Integer channelId;
        private String templateType;
        private String subject;
        private String frequencyControl;
        private Integer leadsRequested;
        private String keywordRelavance;
        private String scheduledAt;
        private String file;
        private String updatedBy;
        
        //getter and setter
    }   

但是当我从controller类和postman中删除consumes时

@RequestMapping(value = "/job/test", method = RequestMethod.POST, produces = "application/json")

然后在controller类中出现调试器,但请求对象中的多部分文件值为空,如

谢谢你。

共有1个答案

堵恺
2023-03-14

检查Jersey restful web service中与其他对象一起上载的文件

另一种方法是在文本中传递整个对象,就像在表单数据中传递文件和在对象中传递convert一样。

 @RequestMapping(value = "/uploadDocs", method = RequestMethod.POST, produces = "application/json", consumes = "multipart/form-data")
    public ResponseEntity<Object> methodName(@RequestParam("files") MultipartFile file, @RequestParam("anyKeyName") String objectString)

可以将字符串转换为对象

Class object = new ObjectMapper().readValue(objectString, Class.class);
 类似资料:
  • 问题内容: 自数小时以来,我一直在尝试纠正http错误,但它仍显示不支持的页面。我在邮递员中添加标题。 这是我的Java代码 这是我的档案 问题答案: 通过和如何在响应流和请求流之间对对象进行序列化和反序列化。 将会发生的是,将从提供者的注册表中进行搜索,以查找可以处理的媒体类型。如果找不到,则Jersey无法处理该请求,并将发送415不支持的媒体类型。通常,你还应该在服务器端记录一个异常。不知道

  • 我已经创建了一个示例web服务来进行post调用。 我使用的是Jersey JAX-RS和Maven。

  • 问题内容: 我正在使用JSON请求调用REST服务,并且它以错误响应。 请求内容类型设置为。 如果我在请求中不包含JSON对象,则效果很好。我正在使用JSON库。 我尝试使用几个不同的库,但这没什么区别。 有人可以帮我解决这个问题吗? 这是我的代码: 的值为: 问题答案: 不确定原因,但是从中 删除行解决了该问题。

  • 我用JSON请求调用REST服务,它用HTTP 415“不支持的媒体类型”错误进行响应。 请求内容类型设置为。 如果我在请求中不包含JSON对象,它就可以正常工作。我正在使用JSON库。 我试着使用了几个不同的库,但没有什么不同。 有人能帮我解决这个问题吗? 这是我的代码: 是:

  • 问题内容: 我正在尝试使用jQuery 1.6(Jackson 2.1.1 和Spring 3.2.0 )通过JSON通过该方法向数据库中插入和/或更新数据。 JS代码如下。 通过URL映射的Spring控制器内部的方法如下。 服务器按照问题的含义进行响应, 415不支持的媒体类型 标头信息如下所示。 整个文件如下。 当我删除一个方法参数并仅用于接受请求参数时,它可以工作。 问题答案: 浏览器发送

  • 问题内容: 我正在使用Spring 3.2,并尝试使用ajax发布请求来提交json对象数组。如果相关,我转义了所有特殊字符。 我的HTTP状态为415。 我的控制器是: jQuery是: 我发布的数组中的对象之一的示例是以下json: 错误是: 为什么会发生此错误-有人知道吗? 问题答案: 您可以尝试使用。它没有任何问题