2012-09-06 91 views

回答

13

使用奇妙的request庫cookie默認啓用。你可以把自己的像這樣(取自Github上頁):如果你想與本地http:request()方法去做

var j = request.jar() 
var cookie = request.cookie('your_cookie_here') 
j.add(cookie) 
request({url: 'http://www.google.com', jar: j}, function() { 
    request('http://images.google.com') 
}) 
+1

但是,只有默認模塊的代碼看起來像什麼? – jiyinyiyong

+0

啊:不確定。我從未嘗試使用默認的http客戶端來處理我的請求。 – Femi

+0

我剛開始瞭解更多關於HTTP的知識。我認爲如果默認的'http'模塊有這樣的方法,我可以知道更多關於它的細節。 – jiyinyiyong

4

,您需要設置相應的Set-Cookie頭(見什麼的HTTP引用它們應該看起來像)在options參數的headers成員中;本機代碼中沒有處理cookie的具體方法。如果您需要具體示例,請參閱Mikeal的request庫中的源代碼和connect中的cookieParser代碼。

但費米幾乎肯定是正確的:處理cookies充滿了相當棘手的細節,而且使用已寫入的代碼以及更重要的是經過測試的代碼幾乎總是會更好。如果你試圖重新發明這個特定的輪子,你很可能會想出大多數時候似乎都能正常工作的代碼,但偶爾和不可預測的代碼會神祕地失敗。

0
var jar = request.jar(); 
const jwtSecret = fs.readFileSync(`${__dirname}/.ssh/id_rsa`, 'utf8'); 
const token = jwt.sign(jwtPayload, jwtSecret, settings); 
jar.setCookie(`any-name=${token}`, 'http://localhost:12345/'); 
const options = { 
    method: 'GET', 
    url: 'http://localhost:12345', 
    jar, 
    json: true 
}; 
request(options, handleResponse); 
+0

請添加更多關於您的答案的描述和/或信息,以及它如何解決問題,以便其他人可以輕鬆理解而不要求澄清 – koceeng

相關問題