在Node.js中发送http/2 POST请求

在Node.js中发送http/2 POST请求,node.js,rest,http2,ksqldb,node-kafka-streams,Node.js,Rest,Http2,Ksqldb,Node Kafka Streams,如何在Node.js中发送http/2 post请求? 我想发送以下请求 curl --http2 "POST" "http://hostname:8088/query-stream" -d $'{"sql": "SELECT * FROM `USERPROFILE` EMIT CHANGES;", "properties": {"ksql.streams.auto.offset.res

如何在Node.js中发送http/2 post请求? 我想发送以下请求

curl --http2 "POST" "http://hostname:8088/query-stream" -d $'{"sql": "SELECT * FROM `USERPROFILE` EMIT CHANGES;", "properties": {"ksql.streams.auto.offset.reset": "earliest" } }'
该软件包具有http/2支持:

import { fetch } from 'fetch-h2'

const url = 'https://hostname:8088/query-stream'
const method = 'POST';
const json = {"sql": "SELECT * FROM `USERPROFILE` EMIT CHANGES;", "properties": {"ksql.streams.auto.offset.reset": "earliest" } };
 
const response = await fetch( url, { method, json } );
请注意,默认情况下,fetch-h2对http://地址使用http/1.1。
更改URL或将fetch-h2配置为显式使用http/2,即使对于http://请求也是如此。

感谢您的回答,但我认为fetch发送http/1.1请求。不支持http/2在该示例中的响应如下{'@type':'generic_error',错误代码:40004,消息:'此端点仅在使用HTTP2'时可用}➜你说得对。我不知道。我用一个应该支持http/2tank You的解决方案更改了答案。我还使用了fetch-h2,这对于该请求来说也是有问题的。对于该请求,将打开连接,如果有任何更改,将发送事件,如套接字。对该示例的响应是“在建立安全TLS连接之前断开客户端网络套接字”