HttpSendRequestA-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 HttpSendRequestA(
  [in] HINTERNET hRequest,
  [in] LPCSTR    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-endende 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 und lpszHeaders nicht NULL ist, geht die Funktion davon aus, dass lpszHeaders null-terminated (ASCIIZ) ist, und die Länge wird berechnet. 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 die Informationen sein, die auf dem Server bereitgestellt 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 0 (null) sein, wenn keine optionalen Daten zum Senden vorhanden sind.

Rückgabewert

Gibt TRUE zurück, wenn erfolgreich, 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 der status Code 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 dasselbe HTTP-Anforderungshandle in mehreren Aufrufen von HttpSendRequest verwenden, aber die Anwendung muss alle Daten lesen, die vom vorherigen Aufruf zurückgegeben wurden, 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 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 wird berechnet. Wenn HttpSendRequestW aufgerufen wird, schlägt die Funktion mit ERROR_INVALID_PARAMETER fehl.

Hinweis Die HttpSendRequestA-Funktion stellt Header als ISO-8859-1-Zeichen dar, nicht als ANSI-Zeichen. 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 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 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
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