clienthttp2session.request(headers[, options])
-
headers<HTTP/2 Headers Object> -
options<Object>endStream<boolean>true如果Http2Stream可写side 最初应该是关闭的,例如在发送一个GET不应期望有效负载正文的请求。exclusive<boolean> 当true和parent标识父流时,创建的流成为父流的唯一直接依赖项,所有其他现有依赖项成为新创建流的依赖项。 默认:false。parent<number> 指定新创建的流所依赖的流的数字标识符。weight<number> 指定流相对于具有相同parent的其他流的相对依赖性。该值是1和256(含)之间的数字。waitForTrailers<boolean> 当true时,Http2Stream将在最后的DATA帧发送后发出'wantTrailers'事件。signal<AbortSignal> AbortSignal 可用于中止正在进行的请求。
仅对于 HTTP/2 客户端 Http2Session 实例,http2session.request() 创建并返回一个 Http2Stream 实例,该实例可用于向连接的服务器发送 HTTP/2 请求。
首次创建ClientHttp2Session 时,可能尚未连接套接字。如果在此期间调用clienthttp2session.request(),实际请求将被推迟到套接字准备就绪。如果在执行实际请求之前关闭session,则会抛出ERR_HTTP2_GOAWAY_SESSION。
此方法仅在 http2session.type 等于 http2.constants.NGHTTP2_SESSION_CLIENT 时可用。
const http2 = require('node:http2');
const clientSession = http2.connect('https://localhost:1234');
const {
HTTP2_HEADER_PATH,
HTTP2_HEADER_STATUS
} = http2.constants;
const req = clientSession.request({ [HTTP2_HEADER_PATH]: '/' });
req.on('response', (headers) => {
console.log(headers[HTTP2_HEADER_STATUS]);
req.on('data', (chunk) => { /* .. */ });
req.on('end', () => { /* .. */ });
});
当options.waitForTrailers 选项被设置时,'wantTrailers' 事件在排队最后一块要发送的有效载荷数据后立即发出。然后可以调用http2stream.sendTrailers() 方法将尾随标头发送到对等方。
当设置options.waitForTrailers 时,在传输最后一个DATA 帧时,Http2Stream 不会自动关闭。用户代码必须调用 http2stream.sendTrailers() 或 http2stream.close() 来关闭 Http2Stream 。
当options.signal 设置为AbortSignal,然后调用相应AbortController 上的abort 时,请求将发出带有AbortError 错误的'error' 事件。
:method 和 :path pseudo-headers 没有在 headers 中指定,它们分别默认为:
:method='GET':path=/
相关用法
- Node.js Console用法及代码示例
- Node.js Console.timeLog([label][, ...data])用法及代码示例
- Node.js CSV转Excel用法及代码示例
- Node.js Console.countReset([label])用法及代码示例
- Node.js Console.trace([message][, ...args])用法及代码示例
- Node.js Certificate.exportPublicKey(spkac[, encoding])用法及代码示例
- Node.js Channel.unsubscribe(onMessage)用法及代码示例
- Node.js Console.timeEnd([label])用法及代码示例
- Node.js MySQL CONCAT_WS()用法及代码示例
- Node.js Channel.hasSubscribers用法及代码示例
- Node.js Console.assert(value[, ...message])用法及代码示例
- Node.js Channel.publish(message)用法及代码示例
- Node.js MySQL CHARACTER_LENGTH()用法及代码示例
- Node.js MySQL Count()用法及代码示例
- Node.js Certificate.verifySpkac(spkac[, encoding])用法及代码示例
- Node.js Console.log([data][, ...args])用法及代码示例
- Node.js Console.count([label])用法及代码示例
- Node.js MySQL CHAR_LENGTH()用法及代码示例
- Node.js Certificate.exportChallenge(spkac[, encoding])用法及代码示例
- Node.js Console.table(tabularData[, properties])用法及代码示例
- Node.js Console.error([data][, ...args])用法及代码示例
- Node.js Cipher用法及代码示例
- Node.js Channel.subscribe(onMessage)用法及代码示例
- Node.js ServerHttp2Stream http2stream.pushStream(headers[, options], callback)用法及代码示例
- Node.js http2.Http2ServerRequest request.url用法及代码示例
注:本文由纯净天空筛选整理自nodejs.org大神的英文原创作品 ClientHttp2Session.request(headers[, options])。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。
