ApiPost如何使用另外一個接口的返回參數做爲當前接口的Token發送Post請求

在實際生產環境中,咱們常遇到一個問題,就是一個接口經常須要另外一個接口的返回值做爲請求參數。php

好比,咱們須要先經過一個接口A獲取token,而後拿到這個token後做爲第二個接口B的請求參數發送。html

本文就來解決這個問題。web

爲了方便演示,咱們先準備2個接口:A接口獲取token,B接口使用token。json

一、獲取token的接口A

接口URL:echo.apipost.cn/token.phpapi

content-type: application/json,bash

請求Body參數:服務器

{
  "moible":1388888666,
  "password":"123456"
}複製代碼

返回示例:app

{
  "errcode":0,
  "errstr":"success",
  "token":"63fabf20700e17ac34d7f90d6d03caae"
}複製代碼

二、使用token的接口B

接口URL:echo.apipost.cn/echo.phppost

content-type: x-www-form-urlencoded,url

請求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"
    }
}複製代碼

三、開始實現

準備

打開apipost,新建一個接口,URL直接填寫 接口B的url:echo.apipost.cn/echo.php

另外,咱們定義一個變量{{token_var}}放到請求body參數,如圖

ApiPost如何使用另外一個接口的返回參數做爲當前接口的Token發送Post請求

因爲該變量{{token_var}} 並未被賦值,因此發送後,服務器端原樣輸出了{{token_var}},這不是咱們想要的結果。

咱們接下來經過2種方法對變量進行賦值。

實現方法一:

新建一個接口,請求參數和URL填寫接口A的信息,以下圖:

ApiPost如何使用另外一個接口的返回參數做爲當前接口的Token發送Post請求

而後點擊[後執行腳本],輸入如下腳本:

apt.variables.set("token_var", response.json.token);複製代碼

這個腳本的意思是,把響應json的token賦給變量token_var

發送後,咱們再去執行B接口,看到服務端已成功接收token,以下圖:

ApiPost如何使用另外一個接口的返回參數做爲當前接口的Token發送Post請求

實現方法二:

咱們進接口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);
});
複製代碼

這段腳本的意思是,向 echo.apipost.cn/token.php 發送一個 content-typeapplication/json的post請求,而且把返回結果的 token 賦給變量:token_var

以下圖所示:

ApiPost如何使用另外一個接口的返回參數做爲當前接口的Token發送Post請求

此時咱們再點擊發送,看到服務端已成功接收token,以下圖:

ApiPost如何使用另外一個接口的返回參數做爲當前接口的Token發送Post請求

參考文檔:

ApiPost的預執行腳本和後執行腳本

ApiPost V3 如何設置一個變量?

相關文章
相關標籤/搜索