Freigeben über


WinHttpQueryHeadersEx-Funktion (winhttp.h)

Ruft Headerinformationen ab, die einer HTTP-Anforderung zugeordnet sind; bietet eine Möglichkeit, analysierte Headernamen- und Wertzeichenfolgen abzurufen.

Syntax

WINHTTPAPI DWORD WinHttpQueryHeadersEx(
  HINTERNET                hRequest,
  DWORD                    dwInfoLevel,
  ULONGLONG                ullFlags,
  UINT                     uiCodePage,
  PDWORD                   pdwIndex,
  PWINHTTP_HEADER_NAME     pHeaderName,
  PVOID                    pBuffer,
  PDWORD                   pdwBufferLength,
  PWINHTTP_EXTENDED_HEADER *ppHeaders,
  PDWORD                   pdwHeadersCount
);

Parameter

hRequest

Typ: _In_ HINTERNET

Von WinHttpOpenRequest zurückgegebenes Anforderungshandle. Der WinHttpReceiveResponse-Aufruf für dieses Handle muss vor dem Aufrufen von WinHttpQueryHeadersEx abgeschlossen sein. Wenn Sie Trailer abfragen, muss der WinHttpReadData-Aufruf für dieses Handle 0 Bytes lesen, bevor WinHttpQueryHeadersEx aufgerufen wird.

dwInfoLevel

Typ: _In_ DWORD

Wert vom Typ DWORD , der eine Kombination aus Attribut- und Modifiziererflags angibt, die im Thema Abfrageinfoflags aufgeführt sind. Diese Attribut- und Modifiziererflags geben die angeforderten Informationen an und geben an, wie sie formatiert werden sollen.

Hinweis

Die folgenden Flags geben bei Verwendung ERROR_INVALID_PARAMETER zurück: WINHTTP_QUERY_VERSION, WINHTTP_QUERY_STATUS_CODE, WINHTTP_QUERY_STATUS_TEXT, WINHTTP_QUERY_FLAG_NUMBER, WINHTTP_QUERY_FLAG_NUMBER64, WINHTTP_QUERY_FLAG_SYSTEMTIME und WINHTTP_QUERY_RAW_HEADERS_CRLF.

Das Flag WINHTTP_QUERY_EX_ALL_HEADERS gibt alle Header zurück.

Wenn Sie nicht alle Header abfragen, können Sie das Flag übergeben, das einem bestimmten bekannten Header entspricht, oder Sie können WINHTTP_QUERY_CUSTOM zusammen mit einer Zeichenfolge für den Headernamen im pHeaderName-Parameter übergeben.

Das Übergeben von WINHTTP_QUERY_FLAG_WIRE_ENCODING gibt die Header in dem Format zurück, in dem sie über das Kabel gesendet werden (Sie sollten auf die psz* -Member von WINHTTP_EXTENDED_HEADER und WINHTTP_HEADER_NAME zugreifen bzw. festlegen). Wenn Sie das Kabelcodierungsflag nicht festlegen, besteht das Standardverhalten darin, Header im Unicode-Format zurückzugeben (Sie sollten auf die pwsz* -Member von WINHTTP_EXTENDED_HEADER und WINHTTP_HEADER_NAME zugreifen bzw. diese festlegen).

ullFlags

Typ: _In_ ULONGLONG

Reserviert. Auf 0 festlegen.

uiCodePage

Typ: _In_ UINT

Die Codepage, die für die Unicode-Konvertierung verwendet werden soll. Sie sollten 0 für das Standardverhalten (CP_ACP) oder bei Verwendung von WINHTTP_QUERY_FLAG_WIRE_ENCODING übergeben. Für diesen Parameter wird keine Überprüfung durchgeführt.

pdwIndex

Typ: _Inout_opt_ PDWORD

Die Adresse eines nullbasierten Indexes, der zum Auflisten mehrerer Header mit demselben Namen verwendet wird. Beim Aufrufen der Funktion ist dieser Parameter der Index des angegebenen Headers, der zurückgegeben werden soll. Wenn die Funktion zurückgibt, ist dieser Parameter der Index des nächsten Headers. Übergeben Sie NULL, um auf den ersten instance eines angegebenen Headers zuzugreifen.

pHeaderName

Typ: _Inout_opt_ PWINHTTP_HEADER_NAME

Die Adresse einer WINHTTP_HEADER_NAME-Struktur .

Legen Sie pHeaderName beim Abrufen aller Header auf NULL fest. Wenn dieser Parameter nicht NULL ist und Sie WINHTTP_QUERY_CUSTOM mit dwInfoLevel übergeben, ruft WinHttpQueryHeadersEx nur den von diesem Parameter angegebenen Header ab. Wenn Sie WINHTTP_QUERY_FLAG_WIRE_ENCODING mit dwInfoLevel übergeben, sollten Sie das element pszName verwenden (wenn das Flag nicht festgelegt ist, verwenden Sie das Element pwszName ).

pBuffer

Typ: _Out_writes_bytes_to_opt_(*pdwBufferLength, *pdwBufferLength) LPVOID

Ein vom Aufrufer bereitgestellter Puffer zum Speichern der analysierten Headerzeiger und der Header. Wenn dieser Parameter NULL oder zu klein ist, gibt WinHttpQueryHeadersExERROR_INSUFFICIENT_BUFFER zurück, und der Parameter pdwBufferLength enthält die erforderliche Puffergröße in Bytes.

pdwBufferLength

Typ: _Inout_ PDWORD

Länge des vom Aufrufer bereitgestellten Puffers. Wenn pBufferNULL oder zu klein ist, schreibt WinHttpQueryHeadersEx die erforderliche Puffergröße in Bytes in diesen Parameter.

ppHeaders

Typ: _Out_writes_opt_(*pdwHeadersCount) PWINHTTP_EXTENDED_HEADER*

Ein Handle für ein Array von WINHTTP_EXTENDED_HEADER für den Zugriff auf analysierte Headernamen/-werte. Sie sollten die Adresse eines WINHTTP_EXTENDED_HEADER-Zeigers übergeben, der in NULL initialisiert ist. Nach Abschluss sollten Sie auf die pszName/pszValue-Parameter zugreifen, wenn Sie WINHTTP_QUERY_FLAG_WIRE_ENCODING verwenden, andernfalls pwszName/pwszValue .

pdwHeadersCount

Typ: _Out_ PDWORD

Die Anzahl der zurückgegebenen Header. Sie sollten nicht versuchen, darauf zuzugreifen, ppHeaders[cHeaders - 1]da dies außerhalb der Grenzen des Arrays liegt.

Rückgabewert

Ein status Code, der das Ergebnis des Vorgangs angibt. Zu den zurückgegebenen Fehlercodes gehören die folgenden.

Fehlercode BESCHREIBUNG
ERROR_WINHTTP_HEADER_NOT_FOUND
Der angeforderte Header konnte nicht gefunden werden.
ERROR_WINHTTP_INCORRECT_HANDLE_STATE
Der angeforderte Vorgang kann nicht ausgeführt werden, da sich der angegebene Handle nicht im richtigen Zustand befindet.
ERROR_WINHTTP_INCORRECT_HANDLE_TYPE
Der Typ des angegebenen Handles ist für diesen Vorgang falsch.
ERROR_WINHTTP_INTERNAL_ERROR
Ein interner Fehler ist aufgetreten.
ERROR_NOT_ENOUGH_MEMORY
Für den angeforderten Vorgang war nicht genügend Arbeitsspeicher verfügbar. (Windows-Fehlercode)

Hinweise

WinHttpQueryHeadersEx baut auf der Funktionalität von WinHttpQueryHeaders auf. Mit WinHttpQueryHeaders können Sie Anforderungs- oder Antwortheader (oder Antworttrailer) in Form einer Zeichenfolge, einer Zahl (DWORD) oder eines Zeitstempels (SYSTEMTIME) abfragen. Das Abfragen nach allen Headern gibt eine einzelne serialisierte Zeichenfolge mit CRLF- oder NULL-Zeichen zurück, die verschiedene Header trennen. Beispiel: "Name1: value1\r\nName2: value2\r\n\r\n". Oder "Name1: value1\0Name2: value2\0\0". Ein doppeltes Trennzeichen wird verwendet, um das Ende der Zeichenfolge anzugeben.

WinHttpQueryHeadersEx bietet Ihnen die Möglichkeit, analysierte Headernamen und Wertzeichenfolgen abzurufen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 10 Build 20348
Unterstützte Mindestversion (Server) Windows 10 Build 20348
Zielplattform Windows
Kopfzeile winhttp.h
Bibliothek Winhttp.lib
DLL Winhttp.dll