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_8)
    @Produces(MediaTypes.JSON_UTF_8)   public APIResult<ProdAttrVO> getAttr(String postData);

MediaTypes都是JSON_UTF_8

  • 这是调用的代码

  restTemplate.postForObject(weburl, postData, String.class);

  client端500报错 server error。

  Server端HTTP 415 Unsupported Media Type

  • 检查发现 Servler端接收到的Content-type:text/plain  而@Consumes(MediaTypes.JSON_UTF_8) 只能接收application/json的content-type 所以报错415

解决办法 client端rest调用的时候 重新指定Content-type

        HttpHeaders requestHeaders = new HttpHeaders();
        requestHeaders.setContentType(MediaType.APPLICATION_JSON);
        HttpEntity<String> requestEntity = new HttpEntity<String>(postData, requestHeaders);
        String result =restTemplate.postForObject(weburl, requestEntity, String.class);
        return result;

问题解决

至于 为什么client端接口上面标注了@Consumes(MediaTypes.JSON_UTF_8) 到Server接收的时候变成了Content-type:text/plain  还不清楚。

原文地址:https://www.cnblogs.com/ssskkk/p/9210914.html

时间: 2024-10-09 15:17:42

RestTemplate远程调用POST请求:HTTP 415 Unsupported Media Type的相关文章

调用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

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

力所能及之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="

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

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.AnnotationMethodHan

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 中的某一项匹配上就可以了.

HTTP请求415错误 – 不支持的媒体类型(Unsupported media type)

HTTP请求415错误 – 不支持的媒体类型(Unsupported media type) 通常有以下情况: 1:检查你的 http 请求头信息,比如 因为 User-Agent 被服务器设置 拒绝请求了: 比如你写的的爬虫,就很有可能因为没有伪装成浏览器,被拒绝请求 user-agent 详情 2:查看你的 http 请求方法,以及服务器端的设置 比如:有一个 强制用 post 请求的接口,你是不是用了非post 请求 3:post 请求参数设置,是不是必须的,json 格式 比如下面,两段