我正在使用Frisby.js库来测试一些API,我需要访问set-cookie标头中的会话cookie以发送以下请求。
当我尝试使用inspectJSON()方法时,我没有看到输出中包含的标头,而且我无法识别任何方式来访问响应中的标头。任何帮助非常感谢。谢谢!
答案 0 :(得分:3)
此示例使用后续调用链接一个Login调用,该调用会添加" set-cookie"到下一个电话。 cookie将作为Web浏览器进行维护,第二次调用仅适用于传递给第二次调用的set-cookie。
var cookie = "";
frisby.create('Login')
.post('localhost:8080/login', {
"username": "test_user_01",
"password": "abcd1234",
}, {
json: true
})
.inspectJSON() // Prints response json to stdout
.inspectHeaders() // Prints out all the headers in response
.expectStatus(200) // Check for http success
.expectJSONTypes({ // Check for any reported errors
status: 1,
message: 'success'
})
.after(function(body,res) {
cookie = res.headers['set-cookie'];
// Fetch account
frisby.create('Get Accounts')
.get(utils.URL + '/accounts?includeAllAccounts=1', {
headers: {
"Content-Type": "application/json",
"Accept": "application/json",
"Cookie": cookie,
}
})
.inspectJSON()
.expectStatus(200)
.expectJSONTypes('responseMap.accounts.0', {
//These tests will fail if the value is null
accountNumber: String,
})
.toss();
}).toss();
答案 1 :(得分:1)
好的,发布此问题后约2分钟,我找到了答案。我能够访问.after()函数中的标题,如下所示:
.after(function(body,res) {
//output headers to console
console.log('************* Headers: ' + JSON.stringify(res.headers, null, 4));
})