簡體   English   中英

如何通過http2實現cookiejar

[英]How to implement cookiejar wtih http2

我正在嘗試發出一些http2請求,但是我完全不知道如何在節點中實現cookie jar /容器-而不是標准的http或http2。 我已經上網了,但還沒有找到解決方案。 例如,我要發出以下http2請求:

const client = http2.connect('https://twitter.com');
const req = client.request({':method': 'GET', ':path': '/' });
req.setEncoding("utf8");
var body = "";
req.on('response', (responseHeaders) => {

});
req.on('data', (chunk) => {
    body += chunk;
});
req.on('end', () =>{ 
    console.log(body);

    client.destroy();
});

然后,我將如何處理后續請求之間的cookie /會話。 例如,此請求在響應頭中設置cookie。 我如何將這些Cookie攜帶到下一個請求?

制定了一個好的解決方案。 我可以簡單地使用軟件包tough-cookie並實現一個存儲cookie的功能,如下所示:

var cookiejar = new tough.CookieJar();

function storeCookies(responseHeaders, jar){
    responseHeaders['set-cookie'].forEach(function(value){
        jar.setCookie(value, "https://twitter.com/", function(){
        });
    });
};

然后在發出請求時,我可以通過將請求的cookie頭加載到帶有tough-cookie的字符串中來設置該cookie頭:

var string = "";
cookiejar.getCookies('https://twitter.com/',function(err,cookies) {
   string = cookies.join('; ');
});

然后, tough-cookie將以合規的方式自動處理tough-cookie過期和存儲。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM