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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章