IHttpSysRequestPropertyFeature.TryGetRequestProperty 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
使用 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 指標。
- bytesReturned
- Int32
回傳寫入 output的位元組數。
如果 output 太小(或空),則回傳儲存該值所需的緩衝區大小。
傳回
若該屬性被成功解讀為 output,則為真。
若 不夠大以容納該值,則為 False output ;此時 bytesReturned 包含所需的緩衝區大小。
對於其他失敗,則會拋出例外。
例外狀況
除了 ERROR_INSUFFICIENT_BUFFER 或 ERROR_MORE_DATA 以外的任何 HttpSys 錯誤。
如果已安裝的 Windows HTTP Server API 不支援 HttpQueryRequestProperty,
備註
如果一開始不知道所需的緩衝區大小,先以空 output 值呼叫此方法,取得所需的大小, bytesReturned然後分配該數量的位元組並重新嘗試查詢。