Freigeben über


HttpSendRequestW-Funktion (wininet.h)

Sendet die angegebene Anforderung an den HTTP-Server, sodass Aufrufer zusätzliche Daten über das hinaus senden können, 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--terminated-Zeichenfolge, die die zusätzlichen Header enthält, die an die Anforderung angefügt werden sollen. Dieser Parameter kann NULL- werden, wenn keine zusätzlichen Header angefügt werden sollen.

[in] dwHeadersLength

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

[in] lpOptional

Ein Zeiger auf einen Puffer, der alle optionalen Daten enthält, die unmittelbar nach den Anforderungsheadern gesendet werden sollen. Dieser Parameter wird in der Regel für POST- und PUT-Vorgänge verwendet. Die optionalen Daten können die Ressource oder Informationen sein, die auf dem Server bereitgestellt werden. Dieser Parameter kann NULL- werden, wenn keine optionalen Daten gesendet werden.

[in] dwOptionalLength

Die Größe der optionalen Daten in Byte. Dieser Parameter kann null sein, wenn keine optionalen Daten gesendet werden.

Rückgabewert

Gibt TRUE zurück, wenn dies erfolgreich ist, oder FALSE andernfalls. Rufen Sie GetLastErrorauf, um erweiterte Fehlerinformationen zu erhalten.

Bemerkungen

HttpSendRequest sendet die angegebene Anforderung an den HTTP-Server und ermöglicht 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 in der Regel für Schreibvorgänge wie PUT und POST verwendet.

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

Eine Anwendung kann das gleiche HTTP-Anforderungshandle in mehreren Aufrufen von HttpSendRequest-verwenden, die Anwendung muss jedoch alle daten lesen, die vom vorherigen Aufruf zurückgegeben werden, bevor die Funktion erneut aufgerufen wird.

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 ist und lpszHeaders nicht NULL-ist, geschieht Folgendes: Wenn HttpSendRequestA aufgerufen wird, geht die Funktion davon aus, dass lpszHeaders null-terminated (ASCIIZ) ist und die Länge berechnet wird. Wenn HttpSendRequestW- aufgerufen wird, schlägt die Funktion mit ERROR_INVALID_PARAMETERfehl.

Hinweis Die HttpSendRequestA--Funktion stellt Kopfzeilen als ISO-8859-1-Zeichen und keine 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 Kopfzeilen nicht-ASCII-Zeichen enthalten können. Stattdessen kann eine Anwendung die funktionen MultiByteToWideChar und WideCharToMultiByte- verwenden, wobei ein Codepage- Parameter auf 28591 festgelegt ist, um zwischen ANSI-Zeichen und UTF-16LE-Zeichen zuzuordnen.
 
Wie alle anderen Aspekte der WinINet-API kann diese Funktion nicht innerhalb von DllMain oder den Konstruktoren und Destruktoren globaler Objekte sicher aufgerufen werden.
Hinweis WinINet keine Serverimplementierungen unterstützt. Darüber hinaus sollte sie nicht von einem Dienst verwendet werden. Verwenden Sie für Serverimplementierungen oder -dienste Microsoft Windows HTTP Services (WinHTTP).
 

Anmerkung

Der wininet.h-Header definiert HttpSendRequest als Alias, der automatisch die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht codierungsneutral ist, 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
mindestens unterstützte Client- Windows 2000 Professional [nur Desktop-Apps]
mindestens unterstützte Server- Windows 2000 Server [nur Desktop-Apps]
Zielplattform- Fenster
Header- wininet.h
Library Wininet.lib
DLL- Wininet.dll

Siehe auch

HTTP-Sitzungen

WinINet-Funktionen