• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    HTTP请求返回415错误码定位解决方法

    今天在工作中,发现我再调用外部API接口的时候,发现一个奇怪的问题,就是我Eclipse中写代码调用外部API接口时返回HTTP状态码是415,但是我将相同的报文放在HttpRequester里面请求的时候却又可以拿到正常返回结果,而不是415错误。

    不知道有没有人跟我一样遇到过这个问题,这里记录一下解决办法。

    首先我们还是看下HTTP的状态码关于415返回码的说明吧。

    415 Unsupported Media Type 服务器无法处理请求附带的媒体格式

    乍看之下,当时并没有看出来是什么意思,后来通过度娘搜索了下,觉得应该是跟发送HTTP报文的请求头中的Content-Type有关。于是,我尝试了下,在Eclipse中的Java代码中,在发送Http请求时带上了相应的头字段,如下所示:

    public class Test {
     public static void main(String[] args) throws IOException {
     String url = "http://ip:port/cip-cas/search";
     String sendData = "{\"appId\":\"***\",\"contentName\":\"人民的名义\",\"equipmentId\":\"***\",\"requestSeq\":\"***\",\"requestType\":\"1\",\"userId\":\"***\"}";
     StringBuilder resultBuilder = new StringBuilder();
     MapString,String> headers = new HashMapString,String>();
     headers.put("Content-Type", "application/json; charset=utf-8");
     UrlConnectionHelper.post(url, sendData, "UTF-8", 8000, headers, resultBuilder);
     System.out.println(resultBuilder.toString());
     }
    }
    

    通过执行测试,发现问题真的解决了。但是为什么我在HttpRequester中没有自己设置头字段却可以正常拿到返回报文,为了解决这个疑问,我决定对HttpRequester发送出去的报文进行抓包分析,下面是抓包的结果。

    这时候才发现原来根本原因在这呢,应该是HttpRequester在发送请求的时候帮我们自己去做了一些处理,如果发送的是json数据自动帮我们加上了Content-Type字段的声明,从而能够正常返回结果。而在Java代码发送的时候,通过抓包我们发现是没有这个头字段的(当然没有,因为我们压根没有给他设置这个头字段)。

    至此,关于这个问题算是解决了,但是回过头来想,415又是什么意思呢?

    个人觉得应该是我们尝试发送的数据是一定数据格式的,比如json,比如xml等等,这时候需要告诉处理方我们发送的是什么样的数据,如果没有告诉的话接收方可能就直接拒识了,这时候我们只要根据实际情况给数据接收方提供发送报文的数据格式应该就可以了。

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

    您可能感兴趣的文章:
    • http post 415错误的解决方法
    • SpringMVC 中HttpMessageConverter简介和Http请求415 的问题
    • HTTP 415错误-Unsupported media type详解
    上一篇:http请求405错误方法不被允许的解决 (Method not allowed)
    下一篇:matlab画三维图像的示例代码(附demo)
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    HTTP请求返回415错误码定位解决方法 HTTP,请求,返回,415,错,误码,