Postman接口测试pre-request script获取GET POST参数方法

本文介绍在Postman中如何使用预请求脚本获取GET和POST传递的数据,包括通过url.query和body.formdata获取参数,以及如何设置全局变量进行后续请求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Postman中pre-request script中获取 GET POST传递数据方法

GET pm.request.url.query.get('user')
POST pm.request.body.formdata.get('user')


pm.sendRequest("http://"+pm.environment.get("host")+"/msg/non?method=get", function (err, response) {
    console.log(response.json());
    pm.globals.set("request_id", response.json().request_id);
    pm.globals.set("non", response.json().nonce);
    
    console.log(pm.request.body.formdata.get('user'));
    
    pm.sendRequest("http://"+pm.environment.get("host")+"/account/user?method=gen_verify&nonce="+response.json().nonce+"&user="+pm.request.url.query.get('user')+"&request_id="+response.json().request_id, function (err, response) {
        
        console.log(response.json());
        pm.globals.set("verify", response.json().verify);
    });
});

参考资料:https://www.postmanlabs.com/postman-collection/RequestBody.html

<think>好的,我现在需要帮助用户解决如何使用PostmanPre-request Script实现登录并获取Token以访问其他API的问题。首先,我得回忆一下Postman的相关功能和步骤。用户提到了Pre-request Script,所以我需要确定这是用来在发送请求前执行脚本的,比如获取Token。 首先,用户可能需要先有一个登录的API接口,用来提交用户名和密码,然后获取Token。所以步骤应该是:发送登录请求,获取Token,然后将Token保存到环境变量中,以便后续的API使用。 接下来,我需要考虑如何在Pre-request Script中发送登录请求。不过,PostmanPre-request Script是在发送主请求之前运行的,通常用于准备数据或设置变量。但直接在Pre-request Script中发送另一个请求可能不太对,因为脚本的执行是同步的,而发送请求是异步的,这可能会导致问题。不过Postman的pm.sendRequest方法支持同步请求,所以可能可以这样用。 然后,用户需要将获取到的Token保存到环境变量中,比如token。这样在后续的请求头中就可以使用这个变量,比如设置Authorization头为Bearer {{token}}。 可能还需要处理登录请求的响应,解析JSON数据,提取Token字段,并确保正确处理错误情况,比如登录失败时给出提示。 此外,用户可能还会问如何在不同请求之间共享Token,这时候使用环境变量或全局变量是合适的。同时,自动续期Token可能也是一个需求,可以在Pre-request Script中检查Token是否过期,如果过期则重新获取。 现在需要按照步骤详细说明,从创建登录请求,到编写Pre-request Script,设置环境变量,应用到其他API,以及处理可能的问题。同时要确保代码示例正确,比如使用pm.sendRequest的同步方式,解析响应,错误处理等。 可能还需要引用相关的参考资料,比如引用[2]中提到如何在Postman中设置请求参数和发送请求,这可以支持步骤中的参数设置部分。另外,引用[1]中关于JWT和认证的实现,可以关联到Token的使用场景。 最后,生成相关问题,帮助用户进一步了解Token管理、自动化测试、不同认证方式等。需要确保问题相关且有深度,引导用户继续探索。</think>### 分步说明 #### 1. 创建登录请求 首先在Postman中创建一个登录请求(例如`POST /login`),并在**Body**中填写用户名和密码参数。例如: ```json { "username": "{{username}}", "password": "{{password}}" } ``` 将`username`和`password`保存为环境变量(通过右上角环境变量管理器)[^2]。 #### 2. 编写Pre-request Script 在需要Token的其他API请求中,打开**Pre-request Script**标签页,添加以下代码: ```javascript // 同步发送登录请求 const loginRequest = { url: 'https://api.example.com/login', method: 'POST', header: 'Content-Type: application/json', body: { mode: 'raw', raw: JSON.stringify({ username: pm.environment.get("username"), password: pm.environment.get("password") }) } }; // 发送请求并处理响应 pm.sendRequest(loginRequest, (err, response) => { if (err) { console.error("登录失败:", err); return; } const token = response.json().token; // 假设返回JSON中包含token字段 pm.environment.set("jwt_token", token); // 将token存入环境变量 }); ``` #### 3. 设置API请求头 在目标API的**Headers**中添加: ``` Authorization: Bearer {{jwt_token}} ``` Postman会自动从环境变量中读取`jwt_token`的值[^1]。 #### 4. 处理Token过期(可选) 在Pre-request Script中添加Token有效期检查: ```javascript const tokenExpiry = pm.environment.get("token_expiry"); if (Date.now() > tokenExpiry) { // 重新获取Token的逻辑 } ``` --- ### 注意事项 1. **安全性**:避免在代码中硬编码敏感信息,始终通过环境变量管理凭证。 2. **异步处理**:`pm.sendRequest`是异步操作,但Postman会等待其完成后再发送主请求。 3. **错误处理**:建议在脚本中添加`try-catch`块或`pm.test`断言验证Token有效性。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值