Lenguaje

IHttpSysRequestPropertyFeature.TryGetRequestProperty Método

Definición

Lee un valor de HTTP_REQUEST_PROPERTY arbitrario de HTTP.SYS mediante httpQueryRequestProperty Windows API.

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

Parámetros

propertyId
Int32

Identificador HTTP_REQUEST_PROPERTY que se va a consultar. El conjunto de valores admitidos se define mediante la HTTP_REQUEST_PROPERTY enumeración en http.h; el autor de la llamada es responsable de analizar los bytes devueltos mediante output la estructura nativa correspondiente.

qualifier
ReadOnlySpan<Byte>

Bytes de calificador específicos de propiedad opcionales. Pase un intervalo vacío para las propiedades que no requieren un calificador; se asignará a un puntero nulo al llamar a la API subyacente.

output
Span<Byte>

Búfer de destino que recibe el valor de propiedad. Pase un intervalo vacío para consultar el tamaño de búfer necesario a través de bytesReturned.

bytesReturned
Int32

Devuelve el número de bytes escritos en output. Si output era demasiado pequeño (o vacío), devuelve el tamaño del búfer necesario para contener el valor.

Devoluciones

True si la propiedad se leyó correctamente en output. False si output no es lo suficientemente grande como para contener el valor; en ese caso bytesReturned , contiene el tamaño de búfer necesario. Para cualquier otro error, se produce una excepción.

Excepciones

Cualquier error de HttpSys excepto ERROR_INSUFFICIENT_BUFFER o ERROR_MORE_DATA.

Si la API de servidor HTTP instalada Windows no admite HttpQueryRequestProperty.

Comentarios

Si el tamaño de búfer necesario no se conoce por adelantado, primero llame a este método con un vacío output para recuperar el tamaño necesario en bytesReturned, asigne esos muchos bytes y vuelva a intentar la consulta.

Se aplica a