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里添加好了我们需要的参数。

ApiPost如何在预执行脚本里添加请求参数?

我们接下来要做的是通过预执行脚本计算出token并添加到header参数。

我们先做个小实验,先在预执行脚本里定义一个临时变量raw_token,其值由 

request.request_bodys.user_id + request.request_bodys.nick_name + navigator.userAgent

组成。其实后面就会讲到,request就是请求参数对象,navigator就是用户环境浏览器对象。

ApiPost如何在预执行脚本里添加请求参数?

然后把这个变量放到get里,目的是看看服务器到底会不会接收到我们目标中由user_id、nick_name、UA组成的字符串。发送结果如下:

ApiPost如何在预执行脚本里添加请求参数?

成功!我们通过在服务器端打印的结果来看,这个参数就是我们发送的body参数加上UA组成的字符串。

那么接下来就好办了,我们只需要把这个变量md5后放到header参数里就行了。

ApiPost如何在预执行脚本里添加请求参数?

并在发送后,服务器成功接收header参数token:

ApiPost如何在预执行脚本里添加请求参数?

request 对象

如同上面所说,我们可以在预执行脚本里,通过 request 对象来获得请求的参数数据。该对象结构如下:

ApiPost如何在预执行脚本里添加请求参数?

navigator对象

Navigator 对象包含有关浏览器的信息,同正常浏览器的Navigator  对象属性相同。

本文档最后更新于:2020-04-28
如未解决您的问题,请在此 提交工单