Partager via


HTTP_REQUEST_V1 structure (http.h)

Utilise la structure HTTP_REQUEST pour retourner des données associées à une requête spécifique.

N’utilisez pas HTTP_REQUEST_V1 directement dans votre code ; l’utilisation de HTTP_REQUEST garantit à la place que la version appropriée, basée sur le système d’exploitation sous lequel le code est compilé, est utilisée.

Syntaxe

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;

Membres

Flags

Une combinaison de zéro ou plus des valeurs d’indicateur suivantes peut être combinée, avec OR, le cas échéant.

Valeur Signification
HTTP_REQUEST_FLAG_MORE_ENTITY_BODY_EXISTS
Il y a plus de corps d’entité à lire pour cette demande. Cela s’applique uniquement aux demandes entrantes qui couvrent plusieurs lectures.

Si cette valeur n’est pas définie, soit le corps entier de l’entité a été copié dans la mémoire tampon spécifiée par pEntityChunks , soit la requête n’a pas inclus de corps d’entité.

HTTP_REQUEST_FLAG_IP_ROUTED
La requête a été routée en fonction de l’hôte et de la liaison IP. L’application doit refléter l’adresse IP locale lors du vidage des entrées du cache du noyau pour cette requête.

Windows Server 2003 avec SP1 et Windows XP avec SP2 : Cet indicateur n’est pas pris en charge.

HTTP_REQUEST_FLAG_HTTP2
Indique que la requête a été reçue via HTTP/2.

ConnectionId

Identificateur de la connexion sur laquelle la demande a été reçue. Utilisez cette valeur lors de l’appel de HttpWaitForDisconnect ou HttpReceiveClientCertificate.

RequestId

Valeur utilisée pour identifier la requête lors de l’appel de HttpReceiveRequestEntityBody, HttpSendHttpResponse et/ou HttpSendResponseEntityBody.

UrlContext

Contexte associé à l’URL dans le paramètre pRawUrl .

Windows Server 2003 avec SP1 et Windows XP avec SP2 :

Version

Structure HTTP_VERSION qui contient la version de HTTP spécifiée par cette requête.

Verb

Verbe HTTP associé à cette requête. Ce membre peut être l’une des valeurs de
énumération HTTP_VERB .

UnknownVerbLength

Si le membre Verb contient une valeur égale à HttpVerbUnknown, le membre UnknownVerbLength contient la taille, en octets, de la chaîne pointée par le membre pUnknownVerb , sans inclure le caractère null de fin. Si Verb n’est pas égal à HttpVerbUnknown, UnknownVerbLength est égal à zéro.

RawUrlLength

Taille, en octets, de la chaîne d’URL non traitées pointée par le membre pRawUrl , sans inclure le caractère null de fin.

pUnknownVerb

Si le membre Verb est égal à HttpVerbUnknown, pUnknownVerb pointe vers une chaîne d’octets terminée par null qui contient le verbe HTTP pour cette requête ; sinon, l’application ignore ce paramètre.

pRawUrl

Pointeur vers une chaîne d’octets qui contient l’URL non traitées d’origine ciblée par cette requête. Utilisez cette URL non traitées uniquement à des fins de suivi ou de statistiques ; Le membre CookedUrl contient la forme canonique de l’URL à usage général.

CookedUrl

Structure HTTP_COOKED_URL qui contient une version canonique à caractères larges analysée de l’URL ciblée par cette requête. Il s’agit de la version de l’URL que les écouteurs HTTP doivent agir sur, plutôt que sur l’URL brute.

Address

Structure HTTP_TRANSPORT_ADDRESS qui contient les adresses de transport de la connexion pour cette requête.

Headers

Structure HTTP_REQUEST_HEADERS qui contient les en-têtes spécifiés dans cette requête.

BytesReceived

Nombre total d’octets reçus du réseau comprenant cette demande.

EntityChunkCount

Nombre d’éléments dans le tableau pEntityChunks . Si aucun corps d’entité n’a été copié, cette valeur est égale à zéro.

pEntityChunks

Pointeur vers un tableau de structures HTTP_DATA_CHUNK qui contient les blocs de données composant le corps de l’entité. HttpReceiveHttpRequest ne copie pas le corps de l’entité, sauf si elle est appelée avec l’indicateur HTTP_RECEIVE_REQUEST_FLAG_COPY_BODY défini.

RawConnectionId

ID de connexion brut pour une requête SSL (Secure Sockets Layer).

pSslInfo

Pointeur vers une structure de HTTP_SSL_INFO qui contient des informations SSL (Secure Sockets Layer) sur la connexion sur laquelle la demande a été reçue.

Notes

L’URL non traitées contenue dans le membre pRawUrl est à des fins de suivi et de statistiques uniquement. À d’autres fins, utilisez l’URL canonique traitée contenue dans le membre CookedUrl .

Spécifications

   
Client minimal pris en charge Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau uniquement]
En-tête http.h

Voir aussi

Structures de l’API serveur HTTP version 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