2014-09-13 73 views
-1

我想模仿簽署一些網站。我需要重新運行應用程序時,它恐慌,並輸入驗證碼。我希望設置管理員自動重新運行它並重新使用我得到的cookie,但我發現請求Jar沒有一些方法,比如從其他服務器設置cookie。我只能設置cookie的我喜歡的文檔創建:如何使用Node請求包將Cookie存儲在本地存儲中?

// `npm install --save tough-cookie` before this works 
var j = request.jar() 
var cookie = request.cookie('your_cookie_here') 
j.setCookie(cookie, uri); 
request({url: 'http://www.google.com', jar: j}, function() { 
    request('http://images.google.com') 
}) 

,並得到像餅乾:

var j = request.jar() 
request({url: 'http://www.google.com', jar: j}, function() { 
    var cookie_string = j.getCookieString(uri); // "key1=value1; key2=value2; ..." 
    var cookies = j.getCookies(uri); 
    // [{key: 'key1', value: 'value1', domain: "www.google.com", ...}, ...] 
}) 

我怎麼能重複使用從其他服務器得到的餅乾?

+0

您是否找到了解決方案? – Muxa 2015-08-04 22:10:54

回答

0

找到了解決上https://github.com/request/request

要使用自定義cookie存儲(如 FileCookieStore 支持保存到和從JSON文件恢復),它作爲一個參數傳遞 到request.jar()

var FileCookieStore = require('tough-cookie-filestore'); 
// NOTE - currently the 'cookies.json' file must already exist! 
var j = request.jar(new FileCookieStore('cookies.json')); 
request = request.defaults({ jar : j }) 
request('http://www.google.com', function() { 
    request('http://images.google.com') 
})