在node.js请求中出现多个“Cookie”头信息

11

我知道如何使用单个cookie发出请求,也知道如何使用多个cookie编写响应,但有谁知道如何在node.js中使用http模块(如果可能)编写带有多个“Cookie”头的请求?迄今为止,我看到的在node.js中发出请求的唯一方法是将对象作为函数的参数传递,这将需要具有两个相同的键。

headers = {
    Cookie: firstCookie,
    Cookie: secondCookie
}

所以不起作用。

这是一个关于 node.js 的问题,但是我对 http 不是非常自信,所以我不确定是否有一种方式来在 header 中设置两个不同的 cookie。是否可能将这两个 cookie 连接成一个单独的 header?一个带有两个单独定义的 cookie 的请求会与一个包含两者的单个 header 的请求有所不同吗?


该 API 用于编写响应头而非请求头。 - twinlakes
1个回答

14

您添加的“Cookie”属性是您HTTP请求中的直接标头。您应该只使用一个“Cookie”标头,并将您的cookie正确编码为一个有效的cookie标头字符串,就像这样:

var headers = {
    Cookie: 'key1=value1; key2=value2'
}

此外,建议您使用一个简化的库,例如 Requestify,而不是使用通常需要编写大量样板代码的nodeJS本机HTTP客户端。

以下是使用Requestify发送带有Cookies的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();
  }
);

Requestify听起来像是我在寻找的东西,但我的项目已经用http编写了,所以我选择了您给出的第一个答案。谢谢。 - twinlakes

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接