HTTP_REQUEST_V1-Struktur (http.h)

Verwendet die HTTP_REQUEST-Struktur , um Daten zurückzugeben, die einer bestimmten Anforderung zugeordnet sind.

Verwenden Sie HTTP_REQUEST_V1 nicht direkt in Ihrem Code. Mit HTTP_REQUEST wird stattdessen sichergestellt, dass die richtige Version basierend auf dem Betriebssystem verwendet wird, unter dem der Code kompiliert wird.

Syntax

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

Eine Kombination aus null oder mehr der folgenden Flagwerte kann je nach Bedarf mit ODER kombiniert werden.

Wert Bedeutung
HTTP_REQUEST_FLAG_MORE_ENTITY_BODY_EXISTS
Es gibt mehr Entitätstext, der für diese Anforderung gelesen werden muss. Dies gilt nur für eingehende Anforderungen, die mehrere Lesevorgänge umfassen.

Wenn dieser Wert nicht festgelegt ist, wurde entweder der gesamte Entitätstext in den von pEntityChunks angegebenen Puffer kopiert, oder die Anforderung enthielt keinen Entitätstext.

HTTP_REQUEST_FLAG_IP_ROUTED
Die Anforderung wurde basierend auf host- und IP-Bindung weitergeleitet. Die Anwendung sollte die lokale IP-Adresse widerspiegeln, während die Kernelcacheeinträge für diese Anforderung geleert werden.

Windows Server 2003 mit SP1 und Windows XP mit SP2: Dieses Flag wird nicht unterstützt.

HTTP_REQUEST_FLAG_HTTP2
Gibt an, dass die Anforderung über HTTP/2 empfangen wurde.

ConnectionId

Ein Bezeichner für die Verbindung, für die die Anforderung empfangen wurde. Verwenden Sie diesen Wert, wenn Sie HttpWaitForDisconnect oder HttpReceiveClientCertificate aufrufen.

RequestId

Ein Wert, der verwendet wird, um die Anforderung beim Aufrufen von HttpReceiveRequestEntityBody, HttpSendHttpResponse und/oder HttpSendResponseEntityBody zu identifizieren.

UrlContext

Der Kontext, der der URL im pRawUrl-Parameter zugeordnet ist.

Windows Server 2003 mit SP1 und Windows XP mit SP2:

Version

Eine HTTP_VERSION-Struktur , die die in dieser Anforderung angegebene HTTP-Version enthält.

Verb

Ein HTTP-Verb, das dieser Anforderung zugeordnet ist. Dieser Member kann einer der Werte aus der
HTTP_VERB-Enumeration .

UnknownVerbLength

Wenn das Verb-Element einen Wert enthält, der gleich HttpVerbUnknown ist, enthält das UnknownVerbLength-Element die Größe der Zeichenfolge in Bytes, auf die das pUnknownVerb-Element verweist, ohne das abschließende NULL-Zeichen. Wenn Verb nicht gleich HttpVerbUnknown ist, ist UnknownVerbLength gleich 0.

RawUrlLength

Die Größe der nicht verarbeiteten URL-Zeichenfolge in Bytes, auf die der pRawUrl-Member verweist, ohne das abschließende NULL-Zeichen.

pUnknownVerb

Wenn der Verb-Member gleich HttpVerbUnknown, pUnknownVerb, ist, verweist auf eine null-beendete Zeichenfolge von Oktetten, die das HTTP-Verb für diese Anforderung enthält. Andernfalls ignoriert die Anwendung diesen Parameter.

pRawUrl

Ein Zeiger auf eine Zeichenfolge von Oktetten, die die ursprüngliche, nicht verarbeitete URL für diese Anforderung enthält. Verwenden Sie diese nicht verarbeitete URL nur zu Nachverfolgungs- oder statistischen Zwecken; Das CookedUrl-Element enthält die kanonische Form der URL für die allgemeine Verwendung.

CookedUrl

Eine HTTP_COOKED_URL-Struktur , die eine analysierte kanonische Breitzeichenversion der URL enthält, auf die diese Anforderung abzielt. Dies ist die Version der URL-HTTP-Listener, auf die anstelle der unformatierten URL reagiert werden soll.

Address

Eine HTTP_TRANSPORT_ADDRESS Struktur, die die Transportadressen für die Verbindung für diese Anforderung enthält.

Headers

Eine HTTP_REQUEST_HEADERS-Struktur , die die in dieser Anforderung angegebenen Header enthält.

BytesReceived

Die Gesamtzahl der Bytes, die vom Netzwerk empfangen werden, das diese Anforderung umfasst.

EntityChunkCount

Die Anzahl der Elemente im pEntityChunks-Array . Wenn kein Entitätstext kopiert wurde, ist dieser Wert null.

pEntityChunks

Ein Zeiger auf ein Array von HTTP_DATA_CHUNK Strukturen, das die Datenblöcke enthält, aus denen der Entitätstext besteht. HttpReceiveHttpRequest kopiert den Entitätstext nur, wenn der Aufruf mit dem HTTP_RECEIVE_REQUEST_FLAG_COPY_BODY-Flag festgelegt ist.

RawConnectionId

Unformatierte Verbindungs-ID für eine SSL-Anforderung (Secure Sockets Layer).

pSslInfo

Ein Zeiger auf eine HTTP_SSL_INFO Struktur, die SSL-Informationen (Secure Sockets Layer) über die Verbindung enthält, über die die Anforderung empfangen wurde.

Hinweise

Die im pRawUrl-Member enthaltene nicht verarbeitete URL dient nur zur Nachverfolgung und zu statistischen Zwecken. Verwenden Sie für andere Zwecke die verarbeitete, kanonische URL, die im CookedUrl-Element enthalten ist.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [nur Desktop-Apps]
Kopfzeile http.h

Weitere Informationen

Strukturen der HTTP-Server-API, 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