利用预执行脚本动态添加一个请求参数

## 使用场景 我们可能需要在请求时发送一些参数,而这些参数是通过其他参与发送的请求参数计算而来的。举例: 接口:https://console.apipost.cn/need_token.php ### body请求参数如下: |参数|参数描述 | |-|-| |user_id|用户ID| |nick_name|用户名| ### header请求参数如下: |参数|参数描述 | |-|-| |token|由body的请求参数user_id、nick_name通过md5 加密后组成| 如上面的情况,我们需要在发送前,先通过body的请求参数user_id、nick_name通过md5 加密计算得出一个token放到header里才行。ApiPost如何实现这个需求呢? 我们可以通过在预执行脚本里增加请求参数来实现。 ## 具体实现 如下图,我们已经在body里添加好了我们需要的参数。 ![image.png](https://img.cdn.apipost.cn/user/-1/fe5586a5cf649ec8.png) ### 1、计算token并赋给变量 我们接下来要做的是通过预执行脚本计算出token并添加到header参数。 先在预执行脚本里定义一个临时变量raw_token,其值由 ``` let raw_token = $.md5(request.request_bodys.user_id.toString() + request.request_bodys.nick_name.toString()); ``` 其中的含义为:定义一个变量raw_token,其值等于 ``` $.md5(request.request_bodys.user_id + request.request_bodys.nick_name) ``` **注**:$.md5 是APIPOST脚本内置的md5函数。更多加密函数可以参考 “利用CryptoJS对请求参数进行MD5/AES加解密” 一节。 ### 2、动态添加请求头 ``` apt.setRequestHeader("token", raw_token); ``` 发送后,可以看到APIPOST自动添加了一个请求头token ![image.png](https://img.cdn.apipost.cn/user/-1/4c47c8bcd3e1da47.png) ## 附:request 对象 通过request对象获取请求参数,详细可以参考《APIPOST内置变量》一节文档。