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

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>

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>

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

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

时间: 2024-10-13 17:59:33

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

力所能及之springmvc NetworkError: 415 Unsupported Media Type

小狼今天在测试springmvc中从json字符串自动转换成实体的技术时,出现问题 首先,小狼创建一个web项目,在lib目录下导入springmvc jar文件,这就不细说了,然后加入json支持类库 在webroo目录下加载jquery.js   json2.js jsp文件是这么写的: <html> <head> <title>My JSP 'index.jsp' starting page</title> <script type="

SpringMVC 中HttpMessageConverter简介和Http请求415 Unsupported Media Type的问题

一.概述: 本文介绍且记录如何解决在SpringMVC 中遇到415 Unsupported Media Type 的问题,并且顺便介绍Spring MVC的HTTP请求信息转换器HttpMessageConverter. 二.问题描述: 在SprinvMVC的Web程序中,我在页面发送Ajax 的POST请求,然后在服务器端利用@requestBody接收请求body中的参数,当时运行过程中,我想服务器发送Ajax请求,浏览器一直反馈415 Unsupported Media Type或者40

angularjs - 415 (Unsupported Media Type)

angularJs+springMVC angular表单提交一个user实体时,报 angularjs - 415 (Unsupported Media Type)错误!! 原因是$http({ url:'', method:'', //一下红色整个改为----------------------------data:user即可 params:{ user:user } }).success(function(data){ //.... }).error(function(data){ //

System.Net.WebException : The remote server returned an error: (415) UNSUPPORTED MEDIA TYPE

I am having problems with a bit of code that accesses a restful web service. Running this code, it errors out at var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse(); and the exception returned is: "System.Net.WebException : The remote se

调用Restful Service 出现415 Unsupported Media Type的问题(Rest Request Header中的Content-Type问题)

用Chrome的插件Simple REST Client 调用POST的REST服务时,老是报415错误,如图. 一开始就以为是服务端的问题,各种google,百度,折腾了一下午未果. 晚上继续看,一不小心看到返回的Response的Headers中Content-Type的值与冒号之间有一个空格,于是将Request的Content-Type:application/json;charset=UTF-8改成Content-Type: application/json;charset=UTF-8

RestTemplate远程调用POST请求:HTTP 415 Unsupported Media Type

这是本项目的接口 称为client @POST @Path("/{urlcode}") @Consumes(MediaTypes.JSON_UTF_8) @Produces(MediaTypes.JSON_UTF_8) public String invokePostMethod(String postData); 这是远程被调用的接口 称为server @POST @Path("/{urlcode}") @Consumes(MediaTypes.JSON_UTF_

SpringMVC---REST POST时出现415 Unsupported Media Type

需要在pom.xml中加jackson依赖   <dependency>             <groupId>org.glassfish.jersey.media</groupId>             <artifactId>jersey-media-json-jettison</artifactId>             <version>${jersey.version}</version>      

POST JSON fails with 415 Unsupported media type, SpringMVC

网上的解决办法非常多,但是大多不靠谱. 归结原因:SpringMVC 无法通过 httprequest headers 中的 Content-Type 和 Accept 匹配到对应的HttpMessageConverter. 解决办法:修改 httprequest headers中的 Content-Type 和 Accept,让它和你的 SpringMVC 的MessageConverters 中设置的 supportedMediaTypes 中的某一项匹配上就可以了.

Unsupported Media Type 415问题解决办法(Ajax)

场景:Ajax传一个jsuon对象到服务器,让参数自动封装至与json对象匹配的java对象中. 错误类型 错误类型1: "status":415 "error":"Unsupported Media Type" "exception":"org.springframework.web.HttpMediaTypeNotSupportedException" 原因:没有使用JSON.stringify(row