Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 在NodeJS中执行传出HTTP2请求_Node.js_Http2 - Fatal编程技术网

Node.js 在NodeJS中执行传出HTTP2请求

Node.js 在NodeJS中执行传出HTTP2请求,node.js,http2,Node.js,Http2,我已检查,但找不到有关如何使以下代码使用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

我已检查,但找不到有关如何使以下代码使用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
中提供。你可以看看。如果您想要全部内容,可以在HTTP2中创建一个。另外,还可以使用http2触发请求。您可以在这里查看一些想法

您将无法找到Node.js本机方式来:

如何使下面的代码使用HTTP2来执行请求

因为,HTTP2的工作原理与HTTP1.1完全不同。 因此,Node.js http2核心模块导出的接口完全不同,具有复用等附加功能

要使用HTTP1.1接口发出HTTP2请求,您可以使用npm模块,我个人编写并使用:

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();