ApiPost如何在預執行腳本里添加請求參數?


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  對象屬性相同。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM