estrutura HTTP_REQUEST_V1 (http.h)

Usa a estrutura HTTP_REQUEST para retornar dados associados a uma solicitação específica.

Não use HTTP_REQUEST_V1 diretamente em seu código; usando HTTP_REQUEST , em vez disso, garante que a versão adequada, com base no sistema operacional em que o código é compilado, seja usada.

Sintaxe

typedef struct _HTTP_REQUEST_V1 {
  ULONG                  Flags;
  HTTP_CONNECTION_ID     ConnectionId;
  HTTP_REQUEST_ID        RequestId;
  HTTP_URL_CONTEXT       UrlContext;
  HTTP_VERSION           Version;
  HTTP_VERB              Verb;
  USHORT                 UnknownVerbLength;
  USHORT                 RawUrlLength;
  PCSTR                  pUnknownVerb;
  PCSTR                  pRawUrl;
  HTTP_COOKED_URL        CookedUrl;
  HTTP_TRANSPORT_ADDRESS Address;
  HTTP_REQUEST_HEADERS   Headers;
  ULONGLONG              BytesReceived;
  USHORT                 EntityChunkCount;
  PHTTP_DATA_CHUNK       pEntityChunks;
  HTTP_RAW_CONNECTION_ID RawConnectionId;
  PHTTP_SSL_INFO         pSslInfo;
} HTTP_REQUEST_V1, *PHTTP_REQUEST_V1;

Membros

Flags

Uma combinação de zero ou mais dos valores de sinalizador a seguir pode ser combinada, com OR, conforme apropriado.

Valor Significado
HTTP_REQUEST_FLAG_MORE_ENTITY_BODY_EXISTS
Há mais corpo de entidade a ser lido para essa solicitação. Isso se aplica somente a solicitações de entrada que abrangem várias leituras.

Se esse valor não estiver definido, todo o corpo da entidade foi copiado para o buffer especificado por pEntityChunks ou a solicitação não incluiu um corpo de entidade.

HTTP_REQUEST_FLAG_IP_ROUTED
A solicitação foi roteada com base no host e na associação de IP. O aplicativo deve refletir o IP local durante a liberação de entradas de cache de kernel para essa solicitação.

Windows Server 2003 com SP1 e Windows XP com SP2: Não há suporte para esse sinalizador.

HTTP_REQUEST_FLAG_HTTP2
Indica que a solicitação foi recebida por HTTP/2.

ConnectionId

Um identificador para a conexão na qual a solicitação foi recebida. Use esse valor ao chamar HttpWaitForDisconnect ou HttpReceiveClientCertificate.

RequestId

Um valor usado para identificar a solicitação ao chamar HttpReceiveRequestEntityBody, HttpSendHttpResponse e/ou HttpSendResponseEntityBody.

UrlContext

O contexto associado à URL no parâmetro pRawUrl .

Windows Server 2003 com SP1 e Windows XP com SP2:

Version

Uma estrutura HTTP_VERSION que contém a versão de HTTP especificada por essa solicitação.

Verb

Um verbo HTTP associado a essa solicitação. Esse membro pode ser um dos valores do
HTTP_VERB enumeração.

UnknownVerbLength

Se o membro Verbo contiver um valor igual a HttpVerbUnknown, o membro UnknownVerbLength conterá o tamanho, em bytes, da cadeia de caracteres apontada pelo membro pUnknownVerb , sem incluir o caractere nulo de terminação. Se Verbo não for igual a HttpVerbUnknown, UnknownVerbLength será igual a zero.

RawUrlLength

O tamanho, em bytes, da cadeia de caracteres de URL não processada apontada pelo membro pRawUrl , sem incluir o caractere nulo de terminação.

pUnknownVerb

Se o membro verbo for igual a HttpVerbUnknown, pUnknownVerb, apontará para uma cadeia de caracteres terminada em nulo de octetos que contém o verbo HTTP para essa solicitação; caso contrário, o aplicativo ignorará esse parâmetro.

pRawUrl

Um ponteiro para uma cadeia de caracteres de octetos que contém a URL original não processada direcionada por essa solicitação. Use essa URL não processada somente para fins estatísticos ou de acompanhamento; o membro CookedUrl contém a forma canônica da URL para uso geral.

CookedUrl

Uma estrutura HTTP_COOKED_URL que contém uma versão de caractere largo canônico analisada da URL direcionada por essa solicitação. Esta é a versão da URL em que os ouvintes HTTP devem agir, em vez da URL bruta.

Address

Uma estrutura HTTP_TRANSPORT_ADDRESS que contém os endereços de transporte para a conexão dessa solicitação.

Headers

Uma estrutura HTTP_REQUEST_HEADERS que contém os cabeçalhos especificados nesta solicitação.

BytesReceived

O número total de bytes recebidos da rede que compõe essa solicitação.

EntityChunkCount

O número de elementos na matriz pEntityChunks . Se nenhum corpo de entidade tiver sido copiado, esse valor será zero.

pEntityChunks

Um ponteiro para uma matriz de estruturas HTTP_DATA_CHUNK que contém os blocos de dados que compõem o corpo da entidade. HttpReceiveHttpRequest não copia o corpo da entidade, a menos que seja chamado com o sinalizador HTTP_RECEIVE_REQUEST_FLAG_COPY_BODY definido.

RawConnectionId

ID de conexão bruta para uma solicitação SSL (Secure Sockets Layer).

pSslInfo

Um ponteiro para uma estrutura HTTP_SSL_INFO que contém informações de protocolo SSL sobre a conexão na qual a solicitação foi recebida.

Comentários

A URL não processada contida no membro pRawUrl é apenas para fins estatísticos e de acompanhamento. Para outras finalidades, use a URL canônica processada contida no membro CookedUrl .

Requisitos

   
Cliente mínimo com suporte Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 [somente aplicativos da área de trabalho]
Cabeçalho http.h

Confira também

Estruturas da API do Servidor HTTP versão 2.0

HTTP_COOKED_URL

HTTP_DATA_CHUNK

HTTP_REQUEST

HTTP_REQUEST_V2

HTTP_RESPONSE

HTTP_SSL_INFO

HTTP_TRANSPORT_ADDRESS

HTTP_VERB

HttpReceiveHttpRequest

HttpReceiveRequestEntityBody

HttpSendHttpResponse

HttpSendResponseEntityBody