📚 问题背景
今天有个盆友碰见一个很有趣的问题,他在本地写了个接口,想要用Postman做一下测试,他说自查了一遍,接口写法没问题,项目启动也非常正常,但是在Postman里一调就报错“400 Bad Request”(报错情况如下图)
老哥火急火燎地找到我,我跟着他一起把代码看了一个遍,配置也瞧了一圈,代码本身是没啥问题的,用的json作为POST接口入参,各种注释也都正常写了;Postman里面的URL,参数,Content-Type,token等数据也都是正常填写进去的,看着完全没有问题,那到底是咋回事呢?我们两个人排查了一中午愣是没有看出问题来,搞得我好奇心膨胀。
🚀 破开一角
后来午饭时候,我把接口地址后半段删除,只保留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会自动用你自定义的参数覆盖系统默认提供的参数的。
软件测试工程师一只,也在不断的学习阶段,平时的小经验不定期分享。
博主经验有限,若有不足,欢迎交流,共同改进~
乾坤未定,你我皆是黑马