繁体   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