node.js请求中有多个"Cookie"标头

twi*_*kes 10 javascript cookies request http-headers node.js

我已经看过如何使用单个cookie发出请求,我已经看到如何使用多个cookie编写响应,但有没有人知道如何使用http模块(如果可能)在node.js中编写请求'Cookie'标题?

到目前为止,我看到在node.js中发出请求的唯一方法是将一个对象作为参数传递给一个函数,这需要两个相同的键.

headers = {
    Cookie: firstCookie,
    Cookie: secondCookie
}
Run Code Online (Sandbox Code Playgroud)

所以不行.

这是一个node.js问题,但我对http并不是非常有信心,所以我不确定是否有办法在标题中设置两个不同的cookie.是否可以将两者连接成一个头?具有两个单独定义的cookie的请求是否会与包含两个cookie的单个标头的请求不同?

小智 12

您添加的"Cookie"属性是HTTP请求中的直接标头.您应该只使用一个'Cookie'标头,并将您的Cookie正确编码为一个有效的Cookie标头字符串,如下所示:

var headers = {
    Cookie: 'key1=value1; key2=value2'
}
Run Code Online (Sandbox Code Playgroud)

此外,我建议你使用像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();
  }
);
Run Code Online (Sandbox Code Playgroud)