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])。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。