ApiPost V3引入了預執行腳本和后執行腳本的概念,詳細可以通過鏈接:《ApiPost的預執行腳本和后執行腳本》了解學習更多。本文主要介紹如何在預執行腳本里增加請求參數。
使用場景
我們可能需要在請求時發送一些參數,而這些參數是通過其他參與發送的請求參數計算而來的。舉例:
接口:https://console.apipost.cn/need_token.php
body請求參數如下:
參數 | 參數描述 |
---|---|
user_id | 用戶ID |
nick_name | 用戶名 |
header請求參數如下:
參數 | 參數描述 |
---|---|
token | 由body的請求參數user_id、nick_name和用戶頭UA通過md5 加密后組成 |
如上面的情況,我們需要在發送前,先通過body的請求參數user_id、nick_name和用戶頭UA通過md5 加密計算得出一個token放到header里才行。ApiPost如何實現這個需求呢?
我們可以通過在預執行腳本里增加請求參數來實現。
具體實現
如下圖,我們已經在body里添加好了我們需要的參數。
我們接下來要做的是通過預執行腳本計算出token並添加到header參數。
我們先做個小實驗,先在預執行腳本里定義一個臨時變量raw_token,其值由
request.request_bodys.user_id + request.request_bodys.nick_name + navigator.userAgent
組成。其實后面就會講到,request就是請求參數對象,navigator就是用戶環境瀏覽器對象。
然后把這個變量放到get里,目的是看看服務器到底會不會接收到我們目標中由user_id、nick_name、UA組成的字符串。發送結果如下:
成功!我們通過在服務器端打印的結果來看,這個參數就是我們發送的body參數加上UA組成的字符串。
那么接下來就好辦了,我們只需要把這個變量md5后放到header參數里就行了。
並在發送后,服務器成功接收header參數token:
request 對象
如同上面所說,我們可以在預執行腳本里,通過 request 對象來獲得請求的參數數據。該對象結構如下:
{
"url": "https://console.apipost.cn/need_token.php", // 字符串,請求URL "method": "POST", // 字符串,請求方式 "timeout": 25000, // 數字,請求超時時間限制(毫秒) "contentType": "application/x-www-form-urlencoded", //字符串,請求contentType "request_bodys": { // 對象,預定義請求Body參數 "user_id": "1", "nick_name": "jim green" }, "request_headers": { // 對象,預定義請求Header參數 "Authorization": "Basic amltOnB3ZDEyMw==" } }
navigator對象
Navigator 對象包含有關瀏覽器的信息,同正常瀏覽器的Navigator 對象屬性相同。