簡體   English   中英

在NodeJS中執行傳出HTTP2請求

[英]Performing outgoing HTTP2 requests in NodeJS

我已經檢查了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中創建一個secureServer 也可以使用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();

暫無
暫無

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

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