在實際生產環境中,我們常遇到一個問題,就是一個接口常常需要另一個接口的返回值作為請求參數。
比如,我們需要先通過一個接口A獲取token,然后拿到這個token后作為第二個接口B的請求參數發送。
本文就來解決這個問題。
為了方便演示,我們先準備2個接口:A接口獲取token,B接口使用token。
1、獲取token的接口A
接口URL:https://echo.apipost.cn/token.php
content-type:application/json,
請求Body參數:
{"moible":1388888666,"password":"123456"}
返回示例:
{"errcode":0,"errstr":"success","token":"63fabf20700e17ac34d7f90d6d03caae"}
2、使用token的接口B
接口URL:https://echo.apipost.cn/echo.php
content-type:x-www-form-urlencoded,
請求body參數:
{"token":? // 需要從獲取token接口拿到token作為請求參數}
返回示例:
{"errcode":0,"errstr":"success","post": [? // 提交的請求body參數? ? ? ??? ? ],"header": {"Host":"echo.apipost.cn","Connection":"keep-alive","Upgrade-Insecure-Requests":"1","User-Agent":"Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/78.0.3904.108 Safari\/537.36","Accept":"text\/html,application\/xhtml+xml,application\/xml;q=0.9,image\/webp,image\/apng,*\/*;q=0.8,application\/signed-exchange;v=b3","Accept-Encoding":"gzip, deflate","Accept-Language":"zh-CN,zh;q=0.9","Cookie":"UM_distinctid=1709ee7b93f4-069ba9e2aa711c-2393f61-13c680-1709ee7b940389; PHPSESSID=oumoolom1338i8aafc6p3a1mhn; BAIDU_SSP_lcr=https:\/\/blog.csdn.net\/weixin_45316122\/article\/details\/95252977; Hm_lvt_a046ce178828e393614822a297b8d296=1588239504,1588239641,1588239650,1588252498; Hm_lpvt_a046ce178828e393614822a297b8d296=1588253907"}}
3、開始實現
準備
打開apipost,新建一個接口,URL直接填寫 接口B的url:http://echo.apipost.cn/echo.php
另外,我們定義一個變量{{token_var}}放到請求body參數,如圖
由于該變量{{token_var}}并未被賦值,所以發送后,服務器端原樣輸出了{{token_var}},這不是我們想要的結果。
我們接下來通過2種方法對變量進行賦值。
實現方法一:
新建一個接口,請求參數和URL填寫接口A的信息,如下圖:
然后點擊[后執行腳本],輸入以下腳本:
apt.variables.set("token_var", response.json.token);
這個腳本的意思是,把響應json的token賦給變量token_var
發送后,我們再去執行B接口,看到服務端已成功接收token,如下圖:
實現方法二:
我們進接口B的“預執行腳本”選項,選擇[發送一個請求],然后改動請求示例為如下腳本:
apt.sendRequest({"method":"post","url":"https://echo.apipost.cn/token.php","content-type":"application/json","data":JSON.stringify({"mobile":1388888666,"password":"123456"})},function(response){apt.variables.set("token_var", response.token);});
這段腳本的意思是,向https://echo.apipost.cn/token.php?發送一個?content-type為application/json的post請求,并且把返回結果的?token?賦給變量:token_var
如下圖所示:
此時我們再點擊發送,看到服務端已成功接收token,如下圖:
轉載自:https://mp.apipost.cn/a/b1c0cb1e60917430
參考文檔: