當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Node.js ClientHttp2Session.request(headers[, options])用法及代碼示例


clienthttp2session.request(headers[, options])

添加於:v8.4.0
  • headers <HTTP/2 Headers Object>

  • options <Object>

    • endStream <boolean> true如果Http2Stream 可寫side 最初應該是關閉的,例如在發送一個GET不應期望有效負載正文的請求。
    • exclusive <boolean>trueparent 標識父流時,創建的流成為父流的唯一直接依賴項,所有其他現有依賴項成為新創建流的依賴項。 默認: false
    • parent <number> 指定新創建的流所依賴的流的數字標識符。
    • weight <number> 指定流相對於具有相同 parent 的其他流的相對依賴性。該值是1256(含)之間的數字。
    • waitForTrailers <boolean>true 時,Http2Stream 將在最後的 DATA 幀發送後發出 'wantTrailers' 事件。
    • signal <AbortSignal> AbortSignal 可用於中止正在進行的請求。
  • 返回: <ClientHttp2Stream>

僅對於 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 = /

相關用法


注:本文由純淨天空篩選整理自nodejs.org大神的英文原創作品 ClientHttp2Session.request(headers[, options])。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。