javascript - 如何使用 http2 实现 cookiejar
问题描述
我正在尝试发出一些 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
:
var string = "";
cookiejar.getCookies('https://twitter.com/',function(err,cookies) {
string = cookies.join('; ');
});
tough-cookie
然后以合规的方式自动处理过期和存储 cookie。
推荐阅读
- linux - 如何使用 sed 删除 grub 条目?
- javascript - 如何删除冒号:在我的 json.stringify 之后
- node.js - node_modules/@fullcalendar/core/main.d.ts(1196,54) 中的错误:错误 TS1144:'{' 或 ';' 预期的
- postgresql - Prisma 1 到 2 迁移问题:P4001 自省数据库为空
- angular - ngx Bootstrap Typeahead 选择后再次显示所有列表并再次聚焦
- angular - 角度通用渲染问题
- wordpress - Wordpress wp-admin css未加载
- python - 替换行中最后一个非 NaN 值
- json - 通过Powershell比较两个不同语法的Json文件
- excel - 从 VBA 中的 Excel 读取范围时获取问号(编码问题)