> 笔者 綦枫Maple 的其他作品,欢迎点击查阅哦~:
> 📚Jmeter性能测试大全:[Jmeter性能测试大全系列教程!持续更新中!](https://blog.csdn.net/qq_36396763/category_8886207.html)
>📚UI自动化测试系列: [Selenium+Java自动化测试系列教程❤](https://testcorn.blog.csdn.net/article/details/97944411?spm=1001.2014.3001.5502)
>📚移动端自动化测试系列:[Appium自动化测试系列教程](https://testcorn.blog.csdn.net/article/details/103096253?spm=1001.2014.3001.5502)
📚 问题背景
今天枫哥的一个妹妹碰见一个很有趣的问题,她在本地写了个接口,想要用Postman做一下测试,妹妹说自查了一遍,接口写法没问题,项目启动也非常正常,但是在Postman里一调就报错“400 Bad Request”(报错情况如下图)
妹妹火急火燎地找到我,一脸焦急地告诉我她在使用 Postman 发送 POST 请求时,始终无法捕获到响应。尽管代码本身没有任何问题,配置也看起来一切正常,但她还是无法得到期望的结果。出于好奇和责任感,我立刻跟着她一起开始了排查工作。
🚀初步检查
首先,我们打开了她的代码文件,逐行检查了每一个细节。代码使用 JSON 作为 POST 接口的入参,各种注释也都写得非常详细,逻辑清晰,没有任何明显的错误。我们还检查了 Postman 中的配置:
- URL:确保 URL 是正确的,指向了正确的 API 端点。
- 参数:确认所有的请求参数都已正确填写,没有遗漏。
- Content-Type:设置了 Content-Type 为 application/json。
- Token:确保请求头中包含了正确的认证 Token。
🚀深入排查
尽管初步检查没有发现明显的问题,但我们还是决定深入排查,看看是否有其他潜在的因素影响了请求的响应。
1. 检查网络连接
我们首先检查了网络连接,确保电脑能够正常访问互联网。我们尝试打开了一些网站,确认网络连接是正常的。
2. 检查 Postman 版本
我们怀疑可能是 Postman 版本的问题,于是检查了 Postman 的版本,确保使用的是最新版本。我们还尝试重启了 Postman,看是否能解决问题。
3. 检查 API 服务器
考虑到问题可能出在 API 服务器上,我们尝试使用其他工具(如 curl 或浏览器的开发者工具)发送相同的请求,看看是否能得到响应。结果显示,其他工具能够正常捕获到响应,这表明 API 服务器本身没有问题。
🚀 破开一角
后来午饭时候,我把接口地址后半段删除,只保留ip,再次发送,发现Send后还是返回400 Bad Request,并且直接访问根目录也是报400 Bad Request,那应该就是在请求发送的环节出了什么问题。
于是我俩对着Postman的配置重新一项一项检查,最后发现原因是这位同学Postman用的不是非常熟练,他在Postman中配置接口参数时,把headers里面hidden(隐藏)的条目手动做了编辑,手动去掉了Host前面的对勾,所以在发送请求时未携带Host,导致报错。原因找到啦~
🚀 问题原因
在使用Postman做接口调用时,如果Headers中不勾选Host,调用接口会报400 Bad Request错误。
💚 解决方案
在Headers里面把Host勾上就可以啦!
另外:下次可要记住了,Postman的Headers中,hidden(隐藏)的项目尽量不要手动取消勾选,如果需要自定义某些参数,在下面手动写上一份就是了,Postman会自动用你自定义的参数覆盖系统默认提供的参数的。
✍结尾
妹妹听后点了点头,脸上露出了满意的笑容。她轻声说道:“原来如此,谢谢你,鸽鸽。看来我不仅要多读书,还要多动手实践,提升自己才行。”
看着她那充满求知欲的眼神,我不禁感叹,学习之路虽然充满挑战,但有这样一位美丽聪慧的伙伴相伴,一切都变得格外有意义。快去和妹妹一起实践一下吧!
👨🎓作者:綦枫Maple
🚀博客:CSDN、掘金等
🚀网易云:https://y.music.163.com/m/user?id=316706413
🚫特别声明:原创不易,转载请附上原文出处链接和本文声明,谢谢配合。
🙏版权声明:文章里可能部分文字或者图片来源于互联网或者百度百科,如有侵权请联系处理。
🀐其他:若有兴趣,可以加页面左侧的《Java自动化技术交流屋》探讨学习哦~