在实际生产环境中,咱们常遇到一个问题,就是一个接口经常须要另外一个接口的返回值做为请求参数。php
好比,咱们须要先经过一个接口A获取token,而后拿到这个token后做为第二个接口B的请求参数发送。html
本文就来解决这个问题。web
为了方便演示,咱们先准备2个接口:A接口获取token,B接口使用token。json
一、获取token的接口A
接口URL:https://echo.apipost.cn/token.php
api
content-type: application/json
,服务器
请求Body参数:app
{ "moible":1388888666, "password":"123456" }
返回示例:post
{ "errcode":0, "errstr":"success", "token":"63fabf20700e17ac34d7f90d6d03caae" }
二、使用token的接口B
接口URL:https://echo.apipost.cn/echo.php
url
content-type: x-www-form-urlencoded
,spa
请求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: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,以下图: