Idioma

IHttpSysRequestPropertyFeature.TryGetRequestProperty Método

Definição

Lê um valor HTTP_REQUEST_PROPERTY arbitrário de HTTP.SYS usando a API de Windows HttpQueryRequestProperty.

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

O HTTP_REQUEST_PROPERTY identificador a ser consultado. O conjunto de valores com suporte é definido pela HTTP_REQUEST_PROPERTY enumeração em http.h; o chamador é responsável por analisar os bytes retornados output usando o struct nativo correspondente.

qualifier
ReadOnlySpan<Byte>

Bytes de qualificador específicos da propriedade opcional. Passe um intervalo vazio para propriedades que não exigem um qualificador; ele será mapeado para um ponteiro nulo ao chamar a API subjacente.

output
Span<Byte>

Buffer de destino que recebe o valor da propriedade. Passe um intervalo vazio para consultar o tamanho do buffer necessário por meio de bytesReturned.

bytesReturned
Int32

Retorna o número de bytes gravados em output. Se output for muito pequeno (ou vazio), retornará o tamanho do buffer necessário para manter o valor.

Retornos

True se a propriedade foi lida outputcom êxito. False se output não for grande o suficiente para manter o valor; nesse caso bytesReturned , contém o tamanho do buffer necessário. Para qualquer outra falha, uma exceção é gerada.

Exceções

Qualquer erro httpSys, exceto ERROR_INSUFFICIENT_BUFFER ou ERROR_MORE_DATA.

Se a API do servidor HTTP Windows instalada não oferecer suporte a HttpQueryRequestProperty.

Comentários

Se o tamanho do buffer necessário não for conhecido antecipadamente, primeiro chame esse método com um vazio output para recuperar o tamanho necessário e, em bytesReturnedseguida, aloque muitos bytes e tente novamente a consulta.

Aplica-se a