You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Node.js发送HTTP/2.0请求?现有模块仅支持HTTP/1.1

如何在Node.js中发送HTTP/2.0请求

嘿,我来帮你搞定这个问题!其实你不用纠结第三方请求模块——Node.js从v8.4.0开始就内置了稳定的http2模块,完全支持HTTP/2.0协议,下面给你详细的实现方案:

基础GET请求(HTTPS场景,HTTP/2最常用方式)

绝大多数HTTP/2部署都是基于TLS的,我们直接用http2.connect建立连接即可:

const http2 = require('http2');

// 目标HTTPS服务器地址
const client = http2.connect('https://example.com');

// 创建请求,指定路径和基础headers
const req = client.request({
  ':path': '/'
});

// 监听响应头返回
req.on('response', (headers) => {
  console.log('响应头信息:', headers);
  // 可以直接验证是否使用了HTTP/2
  console.log('当前协议版本:', req.stream.session.protocol);
});

// 拼接响应体数据
let responseBody = '';
req.on('data', (chunk) => {
  responseBody += chunk;
});

// 响应结束后处理逻辑
req.on('end', () => {
  console.log('完整响应体:', responseBody);
  client.close(); // 及时关闭连接避免泄漏
});

// 处理请求错误
req.on('error', (err) => {
  console.error('请求出错:', err);
  client.close();
});

// 触发请求发送
req.end();

POST请求示例

如果需要发送POST数据,只需调整请求方法并写入请求体:

const http2 = require('http2');

const client = http2.connect('https://your-api-domain.com');

// 构造POST数据
const postPayload = JSON.stringify({
  username: 'test',
  content: 'Hello from HTTP/2!'
});

const req = client.request({
  ':path': '/api/submit',
  ':method': 'POST',
  'content-type': 'application/json',
  'content-length': Buffer.byteLength(postPayload)
});

req.on('response', (headers) => {
  console.log('响应头:', headers);
});

let responseData = '';
req.on('data', (chunk) => {
  responseData += chunk;
});

req.on('end', () => {
  console.log('POST响应结果:', responseData);
  client.close();
});

req.on('error', (err) => {
  console.error('POST请求失败:', err);
  client.close();
});

// 写入请求体并结束请求
req.write(postPayload);
req.end();

额外注意点

  • 如果需要连接非TLS的HTTP/2服务器(非常少见),可以在http2.connect的选项中开启明文模式,目标地址用http://开头,示例:http2.connect('http://your-plain-server.com', { settings: { enablePush: false } })
  • 务必监听所有错误事件,避免连接资源泄漏
  • 很多第三方请求库(比如axios、request)确实还没全面支持HTTP/2,但原生http2模块功能足够稳定强大,能覆盖绝大多数场景

内容的提问来源于stack exchange,提问作者Hobey823

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 07:42:47