今天在工作中,发现我再调用外部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();

Map headers = new HashMap();

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等等,这时候需要告诉处理方我们发送的是什么样的数据,如果没有告诉的话接收方可能就直接拒识了,这时候我们只要根据实际情况给数据接收方提供发送报文的数据格式应该就可以了。

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

415 http请求 hutool_HTTP请求返回415错误码定位解决方法相关推荐

  1. SMTP错误码/建议解决方法

    错误总表 420 1. Timeout Communication Problem Encountered During Transmission. Thie Is a Novell Groupwis ...

  2. qq服务器运行失败,QQ连接服务器超时,请重试,错误码0x00000001解决方法分享

    QQ连接服务器超时,请重试!错误码0x00000001的解决方法 0X00000001解决方法:运行中键入cmd,打开后键入 复制代码代码如下:for %1 in (%windir%\system32 ...

  3. qq发送消息连接服务器超时,QQ连接服务器超时,请重试,错误码0x00000001解决方法...

    QQ连接服务器超时,请重试!错误码0x00000001的解决方法 0X00000001解决方法:运行中键入cmd,打开后键入 for %1 in (%windir%\system32\*.dll) d ...

  4. 刺激战场错误码服务器维护中,刺激战场国际服登陆出现错误码servermaintenance是怎么回事?错误码servermaintenance解决方法一览...

    刺激战场国服已经下架,老玩家们纷纷转战国际服,最近有玩家表示最近登陆的时候总是提示server maintenance,然后就进不去游戏.下面游戏爱好者小编就为大家介绍刺激战场国际服提示server ...

  5. HTTP请求返回415错误码定位解决

    今天在工作中,发现我再调用外部API接口的时候,发现一个奇怪的问题,就是我Eclipse中写代码调用外部API接口时返回HTTP状态码是415,但是我将相同的报文放在HttpRequester里面请求 ...

  6. curl返回常见错误码

    关注公众号 风色年代(itfantasycc) 300G微服务资料等你拿! curl返回常见错误码 - 阿波伦 - 博客园 CURLE_OK(0) 成功. CURLE_UNSUPPORTED_PROT ...

  7. ajax发不出去请求_Ajax请求发送成功但不进success的解决方法

    1.情况描述:ajax发送成功,后台也成功响应请求,并返回了json数据,通过chrome监听请求也可以看到响应的json数据,但是就是不进success方法,反而跑到error方法中了 前端: $. ...

  8. php ajax sucess 失败,Ajax请求发送成功但不进success的解决方法(图文教程)

    下面我就为大家分享一篇Ajax请求发送成功但不进success的解决方法,具有很好的参考价值,希望对大家有所帮助. 1.情况描述:ajax发送成功,后台也成功响应请求,并返回了json数据,通过chr ...

  9. 宿主机( win 7 系统) ping 虚拟机VMware( cent os 6.6 ) 出现“请求超时”或者“无法访问目标主机”的解决方法

    宿主机( win 7 系统) ping 虚拟机VMware( cent os 6.6 ) 出现"请求超时"或者"无法访问目标主机"的解决方法 参考文章: (1) ...

  10. layui表单提交使用form.on(‘submit(sub)‘,function (){}) 使用ajax请求时回调不执行的原因及解决方法

    layui表单提交使用form.on('submit(sub)',function (){}) 使用ajax请求时回调不执行的原因及解决方法 参考文章: (1)layui表单提交使用form.on(' ...

最新文章

  1. 自组织映射网络(SOM)如何解决TSP问题
  2. 变阻尼汽车悬架振动自适应控制方法分析
  3. 利用cookie显示上次浏览的时间
  4. UML图系列——UML概要
  5. 织梦电脑站手机站伪静态+全套伪静态规则-固定目录版
  6. kafka重复消费问题
  7. 访问网络共享时出现“拒绝访问”
  8. 面试了57位高级产品经理,我发现混得好的人都有这个特质!
  9. linux 自动发邮件脚本,科学网—用linux脚本自动发送和收取邮件 - 周宇的博文
  10. 服务器系统安装蓝牙驱动,Atheros Bluetooth蓝牙设备驱动
  11. C++ 遇到reference to ' *** ' is ambiguous 错误
  12. 如何在百度地图上标注宾馆饭店(矢量点标注)并导出为图片
  13. 合天网安实验室CTF-基础50-0x01
  14. 神级软件—uTinyRipper
  15. python如何计算成绩平方根_python 使用二分法计算平方根
  16. 传奇开服方法教程:传奇开服在哪些网站打广告?传奇发布站打广告技巧
  17. Domain Adaptation and Adaptive Information Fusion for Object Detection on Foggy Days
  18. 【新手向】Python做一个简易登录注册GUI界面(无事件绑定)
  19. 智能手机的“退化”史,是巨头们利益野心的作祟
  20. 【PowerDesigner】一款超好用的E-R图工具,快速构建出高质量的数据库结构,提高开发效率和代码质量

热门文章

  1. 100首英文经典歌曲
  2. 信息 | 美国留学之计算机专业【转】
  3. python 使用GDAL实现栅格tif转矢量shp
  4. 鼠标右键新建没有.txt文本文档
  5. 加拿大大学商用计算机专业,加拿大大学计算机专业排名详情
  6. 如何批量将 Excel 文档转为 Json 格式
  7. Android手机获取外网ip(by 星空武哥)
  8. 内存的管理方式有哪些
  9. java 枚举 中文_JAVA枚举类的简单使用
  10. Java 枚举类转换List