我已经看过如何使用单个cookie发出请求,并且我已经看到如何使用多个cookie编写响应,但是有人知道如何使用http模块在node.js中编写请求(如果可能的话) )有多个'Cookie'标题?
到目前为止,我看到在node.js中发出请求的唯一方法是将对象作为参数传递给函数,这需要有两个相同的键。
headers = {
Cookie: firstCookie,
Cookie: secondCookie
}
所以不行。
这是一个node.js问题,但我对http并不十分自信,所以我不确定是否有办法在标题中设置两个不同的cookie。是否可以将两者连接成一个头?具有两个单独定义的cookie的请求是否会与包含两个?的单个标头的请求不同?
答案 0 :(得分:12)
您添加的“Cookie”属性是HTTP请求中的直接标头。 您应该只使用一个“Cookie”标头,并将您的Cookie正确编码为一个有效的Cookie标头字符串,如:
var headers = {
Cookie: 'key1=value1; key2=value2'
}
此外,我建议您使用像Requestify这样的简化库,而不是使用nodeJS本机HTTP客户端,这通常会让您编写大量的样板代码。
这是您使用requiretify使用cookie发出HTTP请求的方法:
var requestify = require('requestify');
requestify.get('http://example.com/api/resource', {
cookies: {
'key1': 'val1',
'key2': 'val2',
}
})
.then(function(response) {
// Get the response body (JSON parsed or jQuery object for XMLs)
response.getBody();
}
);