【发布时间】:2020-06-25 03:28:34
【问题描述】:
当我在 Newman 和 Postman Runner(主要是 Newman)中运行我的请求集合时,我需要能够在请求之间自动删除 cookie。
我遵循了 Postman 的人在此评论中给出的建议:https://github.com/postmanlabs/postman-app-support/issues/3312#issuecomment-516965288。
但它不起作用。
这两个 SO 问题的答案也说明了执行此操作的相同方法:Postman: How do you delete cookies in the pre-request script? Deleting cookies in postman programmatically
这是我使用的代码,上面的来源建议放置在预请求脚本中:
const jar = pm.cookies.jar();
jar.clear(pm.request.url, function (error) {
console.log("Error: ");
console.log(error);
//handle error
});
[注意:运行此代码时错误记录为空]
我已多次尝试此代码,并对该代码进行了许多不同的修改。我也将域列入白名单。但我总是在请求中得到错误的响应。当我手动清除 cookie(使用 cookie 管理器 UI 对话框)时,请求会给出正确的响应。我需要帮助来确定我在以编程方式删除 cookie 时可能出现的问题。
我也试过这个来看看我要删除的 cookie 是什么:
jar.getAll(pm.request.url, function (error, cookies) {
console.log("Cookies:");
console.log(cookies);
console.log("Error: ");
console.log(error);
});
这里的 cookies 是一个空数组。也许这就是问题所在。但这很奇怪,因为当我手动检查 Cookie Manager 时,会显示很多 cookie。一旦我手动删除 cookie,请求就会返回正确的响应。
我的另一个问题是:在上面的代码中,将“cookies”和“错误”作为参数的回调函数的目的是什么。这些函数是每次调用还是仅在某些条件下调用?在邮递员文档中找不到回调函数的用途:https://learning.postman.com/docs/postman/sending-api-requests/cookies/
谢谢
【问题讨论】: