Condividi tramite


struttura HTTP_REQUEST_V1 (http.h)

Usa la struttura HTTP_REQUEST per restituire i dati associati a una richiesta specifica.

Non usare HTTP_REQUEST_V1 direttamente nel codice; l'uso di HTTP_REQUEST garantisce invece che venga usata la versione corretta, in base al sistema operativo in cui viene compilato il codice.

Sintassi

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;

Members

Flags

Una combinazione di zero o più dei valori di flag seguenti può essere combinata, con OR, in base alle esigenze.

Valore Significato
HTTP_REQUEST_FLAG_MORE_ENTITY_BODY_EXISTS
Per questa richiesta è necessario leggere più corpo dell'entità. Questo vale solo per le richieste in ingresso che si estendono su più letture.

Se questo valore non è impostato, l'intero corpo dell'entità è stato copiato nel buffer specificato da pEntityChunks o la richiesta non include un corpo dell'entità.

HTTP_REQUEST_FLAG_IP_ROUTED
La richiesta è stata indirizzata in base all'associazione host e IP. L'applicazione deve riflettere l'INDIRIZZO IP locale durante lo scaricamento delle voci della cache del kernel per questa richiesta.

Windows Server 2003 con SP1 e Windows XP con SP2: Questo flag non è supportato.

HTTP_REQUEST_FLAG_HTTP2
Indica che la richiesta è stata ricevuta tramite HTTP/2.

ConnectionId

Identificatore della connessione in cui è stata ricevuta la richiesta. Usare questo valore quando si chiama HttpWaitForDisconnect o HttpReceiveClientCertificate.

RequestId

Valore usato per identificare la richiesta quando si chiama HttpReceiveRequestEntityBody, HttpSendHttpResponse e/o HttpSendResponseEntityBody.

UrlContext

Contesto associato all'URL nel parametro pRawUrl .

Windows Server 2003 con SP1 e Windows XP con SP2:

Version

Struttura HTTP_VERSION che contiene la versione di HTTP specificata da questa richiesta.

Verb

Verbo HTTP associato a questa richiesta. Questo membro può essere uno dei valori del
HTTP_VERB'enumerazione .

UnknownVerbLength

Se il membro Verb contiene un valore uguale a HttpVerbUnknown, il membro UnknownVerbLength contiene le dimensioni, in byte, della stringa a cui punta il membro pUnknownVerb , senza includere il carattere null di terminazione. Se Verb non è uguale a HttpVerbUnknown, UnknownVerbLength è uguale a zero.

RawUrlLength

Dimensioni, in byte, della stringa URL non elaborata a cui punta il membro pRawUrl , senza includere il carattere Null di terminazione.

pUnknownVerb

Se il membro Verb è uguale a HttpVerbUnknown, pUnknownVerb, punta a una stringa con terminazione Null di ottetti che contiene il verbo HTTP per questa richiesta; in caso contrario, l'applicazione ignora questo parametro.

pRawUrl

Puntatore a una stringa di ottetti che contiene l'URL originale non elaborato di destinazione della richiesta. Utilizzare questo URL non elaborato solo per scopi statistici o di rilevamento; Il membro CookedUrl contiene la forma canonica dell'URL per l'uso generale.

CookedUrl

Struttura HTTP_COOKED_URL che contiene una versione a caratteri wide canonica analizzata dell'URL di destinazione della richiesta. Si tratta della versione dei listener HTTP URL su cui agire, anziché sull'URL non elaborato.

Address

Struttura HTTP_TRANSPORT_ADDRESS che contiene gli indirizzi di trasporto per la connessione per la richiesta.

Headers

Struttura HTTP_REQUEST_HEADERS che contiene le intestazioni specificate in questa richiesta.

BytesReceived

Numero totale di byte ricevuti dalla rete che comprende questa richiesta.

EntityChunkCount

Numero di elementi nella matrice pEntityChunks . Se non è stato copiato alcun corpo dell'entità, questo valore è zero.

pEntityChunks

Puntatore a una matrice di strutture HTTP_DATA_CHUNK che contiene i blocchi di dati che costituiscono il corpo dell'entità. HttpReceiveHttpRequest non copia il corpo dell'entità a meno che non venga chiamato con il flag HTTP_RECEIVE_REQUEST_FLAG_COPY_BODY impostato.

RawConnectionId

ID di connessione non elaborato per una richiesta SSL (Secure Sockets Layer).

pSslInfo

Puntatore a una struttura HTTP_SSL_INFO che contiene informazioni SSL (Secure Sockets Layer) sulla connessione su cui è stata ricevuta la richiesta.

Commenti

L'URL non elaborato contenuto nel membro pRawUrl è destinato solo a scopi statistici e di rilevamento. Per altri scopi, usare l'URL canonico elaborato contenuto nel membro CookedUrl .

Requisiti

   
Client minimo supportato Windows Vista [solo app desktop]
Server minimo supportato Windows Server 2008 [solo app desktop]
Intestazione http.h

Vedi anche

Strutture dell'API server HTTP versione 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