Lingua

IHttpSysRequestPropertyFeature.TryGetRequestProperty Metodo

Definizione

Legge un valore HTTP_REQUEST_PROPERTY arbitrario da HTTP.SYS usando l'API httpQueryRequestProperty Windows.

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

Parametri

propertyId
Int32

Identificatore HTTP_REQUEST_PROPERTY da eseguire per la query. Il set di valori supportati è definito dall'enumerazione in http.h. Il chiamante è responsabile dell'analisi HTTP_REQUEST_PROPERTY dei byte restituiti in output usando lo struct nativo corrispondente.

qualifier
ReadOnlySpan<Byte>

Byte del qualificatore facoltativo specifico della proprietà. Passare un intervallo vuoto per le proprietà che non richiedono un qualificatore; verrà mappato a un puntatore Null quando si chiama l'API sottostante.

output
Span<Byte>

Buffer di destinazione che riceve il valore della proprietà. Passare un intervallo vuoto per eseguire una query sulle dimensioni del buffer necessarie tramite bytesReturned.

bytesReturned
Int32

Restituisce il numero di byte scritti in output. Se output era troppo piccolo (o vuoto), restituisce le dimensioni del buffer necessario per contenere il valore.

Valori restituiti

True se la proprietà è stata letta correttamente in output. False se output non è sufficientemente grande da contenere il valore; in questo caso bytesReturned contiene le dimensioni del buffer necessarie. Per qualsiasi altro errore, viene generata un'eccezione.

Eccezioni

Qualsiasi errore HttpSys ad eccezione di ERROR_INSUFFICIENT_BUFFER o ERROR_MORE_DATA.

Se l'API server HTTP installata Windows non supporta HttpQueryRequestProperty.

Commenti

Se la dimensione del buffer richiesta non è nota in anticipo, chiamare prima di tutto questo metodo con un vuoto output per recuperare le dimensioni necessarie in bytesReturned, quindi allocare tale numero di byte e ripetere la query.

Si applica a