Share via


HttpSendRequestW-Funktion (wininet.h)

Sendet die angegebene Anforderung an den HTTP-Server, sodass Aufrufer zusätzliche Daten senden können, die über das hinausgehen, was normalerweise an HttpSendRequestEx übergeben wird.

Syntax

BOOL HttpSendRequestW(
  [in] HINTERNET hRequest,
  [in] LPCWSTR   lpszHeaders,
  [in] DWORD     dwHeadersLength,
  [in] LPVOID    lpOptional,
  [in] DWORD     dwOptionalLength
);

Parameter

[in] hRequest

Ein Handle, das von einem Aufruf der HttpOpenRequest-Funktion zurückgegeben wird.

[in] lpszHeaders

Ein Zeiger auf eine NULL-Zeichenfolge, die die zusätzlichen Header enthält, die an die Anforderung angefügt werden sollen. Dieser Parameter kann NULL sein, wenn keine zusätzlichen Header angefügt werden müssen.

[in] dwHeadersLength

Die Größe der zusätzlichen Header in TCHARs. Wenn dieser Parameter -1L ist und lpszHeaders nicht NULL ist, geht die Funktion davon aus, dass lpszHeaders null beendet (ASCIIZ) ist und die Länge berechnet wird. Einzelheiten finden Sie unter Hinweise.

[in] lpOptional

Ein Zeiger auf einen Puffer, der alle optionalen Daten enthält, die unmittelbar nach den Anforderungsheadern gesendet werden sollen. Dieser Parameter wird im Allgemeinen für POST- und PUT-Vorgänge verwendet. Die optionalen Daten können die Ressource oder informationen sein, die auf dem Server veröffentlicht werden. Dieser Parameter kann NULL sein, wenn keine optionalen Daten zum Senden vorhanden sind.

[in] dwOptionalLength

Die Größe der optionalen Daten in Bytes. Dieser Parameter kann null sein, wenn keine optionalen Daten zum Senden vorhanden sind.

Rückgabewert

Gibt TRUE zurück, wenn der Vorgang erfolgreich war, oder andernfalls FALSE . Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.

Hinweise

HttpSendRequest sendet die angegebene Anforderung an den HTTP-Server und ermöglicht es dem Client, zusätzliche Header anzugeben, die zusammen mit der Anforderung gesendet werden sollen.

Mit der Funktion kann der Client auch optionale Daten angeben, die unmittelbar nach den Anforderungsheadern an den HTTP-Server gesendet werden sollen. Dieses Feature wird im Allgemeinen für Schreibvorgänge wie PUT und POST verwendet.

Nachdem die Anforderung gesendet wurde, werden die status Code- und Antwortheader vom HTTP-Server gelesen. Diese Header werden intern verwaltet und stehen Clientanwendungen über die HttpQueryInfo-Funktion zur Verfügung.

Eine Anwendung kann dasselbe HTTP-Anforderungshandle in mehreren Aufrufen von HttpSendRequest verwenden. Die Anwendung muss jedoch alle vom vorherigen Aufruf zurückgegebenen Daten lesen, bevor sie die Funktion erneut aufruft.

Im Offlinemodus gibt HttpSendRequestERROR_FILE_NOT_FOUND zurück, wenn die Ressource nicht im Internetcache gefunden wird.

Es gibt zwei Versionen von HttpSendRequest: HttpSendRequestA (verwendet mit ANSI-Builds) und HttpSendRequestW (verwendet mit Unicode-Builds). Wenn dwHeadersLength -1L und lpszHeaders nicht NULL ist, geschieht Folgendes: Wenn HttpSendRequestA aufgerufen wird, geht die Funktion davon aus, dass lpszHeaders zero-terminated (ASCIIZ) ist und die Länge berechnet wird. Wenn HttpSendRequestW aufgerufen wird, schlägt die Funktion mit ERROR_INVALID_PARAMETER fehl.

Hinweis Die HttpSendRequestA-Funktion stellt Header als ISO-8859-1-Zeichen und nicht als ANSI-Zeichen dar. Die HttpSendRequestW-Funktion stellt Header als ISO-8859-1-Zeichen dar, die in UTF-16LE-Zeichen konvertiert werden. Daher ist es nie sicher, die HttpSendRequestW-Funktion zu verwenden, wenn die hinzuzufügenden Header Nicht-ASCII-Zeichen enthalten können. Stattdessen kann eine Anwendung die Funktionen MultiByteToWideChar und WideCharToMultiByte mit einem Codepage-Parameter verwenden, der auf 28591 festgelegt ist, um ZWISCHEN ANSI-Zeichen und UTF-16LE-Zeichen zuzuordnen.
 
Wie alle anderen Aspekte der WinINet-API kann diese Funktion nicht sicher innerhalb von DllMain oder den Konstruktoren und Destruktoren globaler Objekte aufgerufen werden.
Hinweis WinINet unterstützt keine Serverimplementierungen. Darüber hinaus sollte es nicht von einem Dienst aus verwendet werden. Verwenden Sie für Serverimplementierungen oder Dienste Microsoft Windows HTTP Services (WinHTTP).
 

Hinweis

Der wininet.h-Header definiert HttpSendRequest als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit nicht codierungsneutralem Code kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile wininet.h
Bibliothek Wininet.lib
DLL Wininet.dll

Weitere Informationen

HTTP-Sitzungen

WinINet-Funktionen