2013-08-27 47 views
9

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

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

headers = { 
    Cookie: firstCookie, 
    Cookie: secondCookie 
} 

所以不会工作。

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

+0

该API是用于编写响应头不请求头 – twinlakes

回答

11

您添加的'Cookie'属性是HTTP请求中的直接标头。 你应该只使用一个“曲奇”头和编码您的饼干适当一个有效的cookie头字符串,这样的:

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

而且,而是采用的NodeJS本地HTTP客户端通常都会让你写很多的样板代码,我会建议你使用像Requestify一个大大简化库..

这是如何使用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(); 
    } 
); 
+0

Requestify听起来像我在找什么,但我的项目已经用http编写,所以我用你的第一个答案来代替。谢谢 – twinlakes

+0

很高兴我能帮忙( - : – ranm8

-3

您可以使用child_process.exec来运行curl进程并获取stdout以执行任何类型的请求,而不是使用本机Node.js库。

+5

哇。糟糕的想法,因为它的规模很大。 –