码迷,mamicode.com
首页 > Web开发 > 详细

HTTP Status 415 – Unsupported Media Type(使用@RequestBody后postman调接口报错)

时间:2019-03-07 14:27:34      阅读:3311      评论:0      收藏:0      [点我收藏+]

标签:type   ack   sdn   eve   方式   handler   文件   code   gif   

1.问题描述:使用springMVC框架后,添加数据接口中,入参对象没使用@RequestBody注解,造成postman发起post请求,

      from-data可以调通接口,但是raw调不通接口,然后我用了SpringMVC @ResponseBody 注解,调接口显示415错误处理。

处理:

springmvc添加配置、注解:

技术图片
 1  <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
 2         <property name="messageConverters">
 3             <list>
 4                 <ref bean="jsonHttpMessageConverter" />
 5             </list>
 6         </property>
 7    </bean>
 8  
 9    <bean id="jsonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
10         <property name="supportedMediaTypes">
11             <list>
12                 <value>application/json;charset=UTF-8</value>
13             </list>
14         </property>
15    </bean>
View Code

pom.xml添加jackson包引用:

技术图片
 1 <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
 2             <dependency>
 3                 <groupId>com.fasterxml.jackson.core</groupId>
 4                 <artifactId>jackson-core</artifactId>
 5                 <version>2.9.6</version>
 6             </dependency>
 7             <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
 8             <dependency>
 9                 <groupId>com.fasterxml.jackson.core</groupId>
10                 <artifactId>jackson-databind</artifactId>
11                 <version>2.9.6</version>
12             </dependency>
13             <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-annotations -->
14             <dependency>
15                 <groupId>com.fasterxml.jackson.core</groupId>
16                 <artifactId>jackson-annotations</artifactId>
17                 <version>2.9.6</version>
18             </dependency>
View Code

Ajax请求时没有设置Content-Type为application/json

技术图片

注:按照上面配置完成后可以使用raw调用接口中包含@RequestBody注解的接口,但是此时你会发现form-data这种方式访问接口又调不通了,百度了下,解决如下:

  • form-data 的 Content-Type 的类型是 application/x-www-form-urlencoded,是表单编码,不同的是还可以提交文件。
  • raw 的话,有几种,常用的是application/json
  • 如果SpringMVC要接受application/json,需要使用 @RequestBody 注解来接收。

也就是说 @RequestBody 注解接收的是application/json格式的参数,这种参数使用raw传参可以自定义格式为(JSON(application/json)),

但是form-data传参的格式是application/x-www-form-urlencoded的,所以调不通接口。

 

参考:

https://blog.csdn.net/leyangjun/article/details/79221765

https://blog.csdn.net/yixiaoping/article/details/45281721#comments

HTTP Status 415 – Unsupported Media Type(使用@RequestBody后postman调接口报错)

标签:type   ack   sdn   eve   方式   handler   文件   code   gif   

原文地址:https://www.cnblogs.com/LJing21/p/10485146.html

(0)
(2)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!