10

我已经看到了如何使用单个 cookie 发出请求,并且我已经看到了如何使用多个 cookie 编写响应,但是有谁知道如何使用 http 模块(如果可能)在 node.js 中编写多个请求“Cookie”标题?

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

headers = {
    Cookie: firstCookie,
    Cookie: secondCookie
}

所以行不通。

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

4

1 回答 1

12

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

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

另外,不要使用 nodeJS 原生 HTTP 客户端,这通常会让你编写大量样板代码,我建议你使用一个非常简化的库,比如Requestify ..

这是使用 requestify 使用 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();
  }
);
于 2013-08-27T15:25:14.460 回答