語言

IHttpSysRequestPropertyFeature.TryGetRequestProperty 方法

定義

使用 HttpQueryRequestProperty Windows API 從 HTTP.SYS 讀取任意的 HTTP_REQUEST_PROPERTY 值。

public virtual bool TryGetRequestProperty(int propertyId, ReadOnlySpan<byte> qualifier, Span<byte> output, out int bytesReturned);
abstract member TryGetRequestProperty : int * ReadOnlySpan<byte> * Span<byte> * int -> bool
override this.TryGetRequestProperty : int * ReadOnlySpan<byte> * Span<byte> * int -> bool
Public Overridable Function TryGetRequestProperty (propertyId As Integer, qualifier As ReadOnlySpan(Of Byte), output As Span(Of Byte), ByRef bytesReturned As Integer) As Boolean

參數

propertyId
Int32

查詢的HTTP_REQUEST_PROPERTY識別碼。 支援的值集合由 HTTP_REQUEST_PROPERTY 列 http.h舉定義;呼叫者負責解析使用對應的原生結構體回傳 output 的位元組。

qualifier
ReadOnlySpan<Byte>

可選的屬性特定限定字元組。 對於不需要限定條件的性質,則傳遞空的張成;呼叫底層 API 時,它會被映射到 null 指標。

output
Span<Byte>

接收屬性值的目的緩衝區。 傳送一個空區間以查詢所需的緩衝區大小。bytesReturned

bytesReturned
Int32

回傳寫入 output的位元組數。 如果 output 太小(或空),則回傳儲存該值所需的緩衝區大小。

傳回

若該屬性被成功解讀為 output,則為真。 若 不夠大以容納該值,則為 False output ;此時 bytesReturned 包含所需的緩衝區大小。 對於其他失敗,則會拋出例外。

例外狀況

除了 ERROR_INSUFFICIENT_BUFFER 或 ERROR_MORE_DATA 以外的任何 HttpSys 錯誤。

如果已安裝的 Windows HTTP Server API 不支援 HttpQueryRequestProperty,

備註

如果一開始不知道所需的緩衝區大小,先以空 output 值呼叫此方法,取得所需的大小, bytesReturned然後分配該數量的位元組並重新嘗試查詢。

適用於