如何使用邮递员获取所有 Set-Cookie 标头



我的应用程序返回两个 Set-Cookie 标头:JSESSIONID 和 AWSELB。

当我在Postman中编写测试并使用postman.getResponseHeader("Set-Cookie")它只返回AWSELB。

知道我怎样才能得到JSESSIONID?

编辑:接受的答案以一种方式解决了它,现在我有同样的问题,但使用相同的密钥发送两个标头。我应该能够发送多个"Set-Cookie"标头,但是当我这样做时,看起来只发送了最后一个,第一个被覆盖了。

getResponseHeader 似乎只包含最后一个标头,因此在处理 cookie 时它并没有真正有用。

我宁愿建议你尝试

getResponseCookie

例如:

tests["Should contain JSESSIONID cookie"] = postman.getResponseCookie('JSESSIONID').value === 'abcdef';

希望这有帮助!

实际上 postman 包含 postman.response.headers 下的所有标头其类型是标题列表。但它存储类型为 Array 的标头。标头具有键和值。

因此,您可以遍历postman.response.headers并使用值或键过滤掉所需的内容

按标题键过滤

pm.response.headers
.filter(header=>header.key.includes("whatever you are looking for"))
.map(f=>console.log( f.value))

按标头值筛选

pm.response.headers
.filter(header=>header.value.includes("whatever you are looking for"))
.map(f=>console.log( f.value))

我使用以下方法从响应标头获取cookie,

const Cookie = require('postman-collection').Cookie;
const oResponseHeaders = pm.response.headers;
oResponseHeaders.filter(function(resHeader){
    //console.log("resHeader : ",resHeader);
    
    let bSetCookieExists = resHeader.key.includes("Set-Cookie");
    if(bSetCookieExists){
        console.log('cookie : ',resHeader.key.includes("Set-Cookie"));
        
        let  rawHeader = pm.response.headers.get("Set-Cookie");
        let myCookie = new Cookie(rawHeader);
        console.log("myCookie : ",myCookie.toJSON());
        console.log("myCookie name : ", myCookie.name);
        console.log("myCookie value : ", myCookie.value);
      
    }
    
   
})

相关内容

最新更新