【发布时间】:2022-05-10 09:03:40
【问题描述】:
如何以编程方式获取 Postman 请求的内容长度,包括变量值?
我需要在 Postman 中放入的 PUT 请求中包含 content-length 标头。我可以在预请求脚本中获取请求内容长度,但是,根据Postman script documentation,预请求脚本是(duh)在生成请求(或仅发送?)之前获取内容长度。这对我的场景来说是有问题的,因为在为请求填写变量值之后我需要内容长度。
//Get request length
var rdata = request.data;
var requestLength = JSON.stringify(JSON.parse(rdata)).length;
pm.environment.set("requestLength", requestLength);
console.log(requestLength);
【问题讨论】:
-
您能否获取请求中的响应标头并将该值分配给变量?喜欢
pm.environment.set('requestLength', pm.response.headers('Content-Length'))? -
我实际上尝试过这个并意识到它并没有像我想的那样做 -
pm.response.headers返回一个标题数组。你可以在上面做 JSON.stringify() ,然后 JSON.parse() 我们你需要的值。它与您所拥有的非常相似。你可以试试这个([4] 是我自己的要求,可能需要改变这个)?var contentLength = JSON.stringify(pm.response.headers); pm.environment.set('contentLength', JSON.parse(contentLength)[4].value); -
作为一种解决方法,您是否尝试执行第一个“虚拟请求”(使用 HEAD 而不是 PUT)以获取“测试”部分中的数据长度,设置全局变量,然后用正确的值调用您的真实请求?但不是很干净。
-
或者您可以在测试选项卡中获取您的请求大小,然后再次尝试根据您拥有的元素(正文、标题等)为您的最终请求计算它?