postman 是个很不错的 http 请求测试工具,有时我们使用它发送 http 请求,但是因为各种原因,导致请求失败,没有 response 返回,可能只有一个状态码,这让我们排查起来非常困难,比如下图所示,请求一个接口后,看不到 response,只能看到 status 是 401 unauthorized,字面意思是没权限。
但是我明明已经在 Pre-request Script 里请求一个 http 接口来获取 jwt token,并把请求到的 token 放到 header 的 X-Jwt-Token
属性中,所以理论上是有权限的,而且这个小脚本已经经过很多次验证是没问题的,所以很迷茫,不知道咋回事,恰好此时我看到了postman 底部有个 Console 按钮,我点击了一下,发现可以看到 Pre-request Script 脚本的里的代码执行结果,包括 http 请求和打印语句等。
通过 Console 窗口,很容易发现 jwt_token 输出为 undefined,说明获取 jwt token 失败了,而且用于获取 jwt token 的 http 请求确实标红报错了。
展开报错的请求后,可以看到,生成 jwt token 的 http 请求报错提示:Error: Protocol "https:" not supported. Expected "http:"
,根据报错,我知道了原来因为请求 jwt token的 http 请求使用了 https 而不是 http 导致请求失败了,于是得到 2 个请求方案,一个是把 https 改成 http,另一个是按照这个教程开启 postman 的 SSL certificate verification
配置开关,使得 postman 可以发起 https 请求。
至此,我们就通过 Console 窗口成功排查到了问题所在,Console 窗口确实帮助我更快定位到了问题。