【问题标题】:Multiple 'Cookie' headers in a node.js requestnode.js 请求中的多个“Cookie”标头
【发布时间】:2013-08-29 15:35:08
【问题描述】:

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

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

headers = {
    Cookie: firstCookie,
    Cookie: secondCookie
}

这样就不行了。

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

【问题讨论】:

  • 那个api是写响应头而不是请求头

标签: javascript node.js cookies http-headers request


【解决方案1】:

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

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

另外,我建议您使用一个非常简化的库,例如 Requestify..

,而不是使用通常会让您编写大量样板代码的 nodeJS 原生 HTTP 客户端

这是您可以使用 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();
  }
);

【讨论】:

  • Requestify 听起来像我正在寻找的东西,但是我的项目已经用 http 编写了,所以我使用了你的第一个答案。谢谢
  • 很高兴能帮上忙 (-:
猜你喜欢
  • 2013-04-24
  • 2019-11-29
  • 1970-01-01
  • 1970-01-01
  • 2017-07-21
  • 1970-01-01
  • 1970-01-01
  • 2017-01-13
  • 1970-01-01
相关资源
最近更新 更多