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])。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。