在nodejs中执行http2请求



我已经检查了nodejs文档,但找不到有关如何制作以下代码的任何信息使用http2来执行请求:

const https = require('https');
const options = {
  hostname: 'encrypted.google.com',
  port: 443,
  path: '/',
  method: 'GET'
};
const req = https.request(options, (res) => {
  console.log('statusCode:', res.statusCode);
  console.log('headers:', res.headers);
  res.on('data', (d) => {
    process.stdout.write(d);
  });
});
req.on('error', (e) => {
  console.error(e);
});
req.end()

即使是Nodejs的最新版本,这根本不支持?

这在v9.9.0中可用。您可以查看Nodejs中的HTTP2。如果您想要整个过程,则可以在HTTP2中创建安全服务器。还可以使用HTTP2发射请求。您可以查看本文以获取一些想法

您找不到node.js本地方法:

如何制作以下代码使用http2执行请求

因为,HTTP2的工作原理与HTTP1.1完全不同。因此,node.js HTTP2核心模块导出的接口完全不同,其他功能(例如多路复用(。

要使用HTTP1.1接口进行HTTP2请求,您可以使用NPM模块,我亲自编码并使用:http2-client

const {request} = require('http2-client');
const h1Target = 'http://www.example.com/';
const h2Target = 'https://www.example.com/';
const req1 = request(h1Target, (res)=>{
    console.log(`
Url : ${h1Target}
Status : ${res.statusCode}
HttpVersion : ${res.httpVersion}
    `);
});
req1.end();
const req2 = request(h2Target, (res)=>{
    console.log(`
Url : ${h2Target}
Status : ${res.statusCode}
HttpVersion : ${res.httpVersion}
    `);
});
req2.end();

最新更新