zoukankan      html  css  js  c++  java
  • 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  还不清楚。

  • 相关阅读:
    实验四 代码审查
    结对编程——阶段二
    实验二—结对编程第一环节
    实验一 GIT 代码版本管理
    实验五 单元测试
    实验四 代码评审
    实验三 UML建模工具的安装与使用
    实验二 结对编程第二阶段
    实验二 结对编程——第一阶段
    软件工程 实验一 GIT代码版本管理
  • 原文地址:https://www.cnblogs.com/ssskkk/p/9210914.html
Copyright © 2011-2022 走看看