2013-08-27 81 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

哇。糟糕的想法,因爲它的規模很大。 –