以前不喜欢 Postman,认为它全是英文看不懂,现在觉得这款工具很强大,愿意多了解一下。
最近在公司写一些需要认证才能访问的 API,让我这个平时喜欢用网页在线测试的我有些手忙脚乱,每次要手动去拿 token 再贴到请求头上,很麻烦!有没有一款工具可以按需自动获取 token 填到 headers 上? Postman 的请求前执行脚本可以试一试!
安装 Postman
下载地址:
Download Postman | Get Started for Free
你可以选择在线版,也可以安装软件,貌似是套壳浏览器。。。
在线版需要配置代理服务器,我图省事就装软件了。
大神有做汉化:
PostmanCn: Postman中文版 (gitee.com)
我曾经装过又失效了,不折腾了,调成英文就当学习了
设置请求前获取 token
通常需要登录才能请求的 API 都要携带 token,Postman 有个请求之前执行脚本的功能。
现在我在全局设置一个 Pre-request script
,具体操作
在这个框里就可以写脚本了,附上我现在写的脚本
const loginRequest = {
url: "http://localhost:1338/auth/local",
method: "POST",
header: 'Content-Type: application/json',
body: {
mode: 'raw',
raw: JSON.stringify({"phone":"156666666666","code":"1"}),
}
};
pm.sendRequest(loginRequest, function (err, response) {
try{
if(err) throw new Error(JSON.stringify(err))
const {jwt} = response.json();
pm.globals.set("token", jwt);
}catch(err){
const errObj = JSON.parse(err.message);
switch(errObj.code){
case "ECONNREFUSED":
throw new Error("连不上服务器")
}
}
});
注意看携带 JSON 消息体的时候的写法,千万别忘了Content-Type
!
最重要的就是拿到token后,设置到全局变量里
这时在Authorization
里填入 token 即可
现在请求该标签页底下的 API 都会在请求之前获取 token 了
请求之后你会在右上角,点击眼睛图标后会看见你设置的全局变量
不生效可以点左下角 Console 看一下报错!