Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die WinHttpOpenRequest-Funktion erstellt ein HTTP-Anforderungshandle.
Syntax
WINHTTPAPI HINTERNET WinHttpOpenRequest(
[in] HINTERNET hConnect,
[in] LPCWSTR pwszVerb,
[in] LPCWSTR pwszObjectName,
[in] LPCWSTR pwszVersion,
[in] LPCWSTR pwszReferrer,
[in] LPCWSTR *ppwszAcceptTypes,
[in] DWORD dwFlags
);
Parameter
[in] hConnect
HINTERNET-Verbindungshandle zu einer von WinHttpConnect zurückgegebenen HTTP-Sitzung.
[in] pwszVerb
Zeiger auf eine Zeichenfolge, die das in der Anforderung zu verwendende HTTP-Verb enthält. Wenn dieser Parameter NULL ist, verwendet die Funktion GET als HTTP-Verb. Hinweis Diese Zeichenfolge sollte ganz groß geschrieben sein. Viele Server behandeln HTTP-Verben als sensitiv, und die Internet Engineering Task Force (IETF) Requests for Comments (RFCs) schreibt diese Verben nur mit Großbuchstaben.
[in] pwszObjectName
Zeiger auf eine Zeichenfolge, die den Namen der Zielressource des angegebenen HTTP-Verbs enthält. Dies ist in der Regel ein Dateiname, ein ausführbares Modul oder ein Suchbezeichner.
[in] pwszVersion
Zeiger auf eine Zeichenfolge, die die HTTP-Version enthält. Wenn dieser Parameter NULL ist, verwendet die Funktion HTTP/1.1.
[in] pwszReferrer
Zeiger auf eine Zeichenfolge, die die URL des Dokuments angibt, aus dem die URL in der Anforderung pwszObjectName abgerufen wurde. Wenn dieser Parameter auf WINHTTP_NO_REFERER festgelegt ist, wird kein verweisendes Dokument angegeben.
[in] ppwszAcceptTypes
Zeiger auf ein NULL-beendetes Array von Zeichenfolgenzeigern, das vom Client akzeptierte Medientypen angibt. Wenn dieser Parameter auf WINHTTP_DEFAULT_ACCEPT_TYPES festgelegt ist, werden keine Typen vom Client akzeptiert. In der Regel behandeln Server einen Mangel an akzeptierten Typen als Hinweis, dass der Client nur Dokumente vom Typ "text/*" akzeptiert. d. h. nur Textdokumente – keine Bilder oder andere Binärdateien. Eine Liste der gültigen Medientypen finden Sie unter Von der IANA definierte Medientypen unter http://www.iana.org/assignments/media-types/.
[in] dwFlags
Ganzzahlwert ohne Vorzeichen, der die Werte des Internetflags enthält. Dies kann einen der folgenden Werte annehmen:
Rückgabewert
Gibt bei erfolgreicher Ausführung ein gültiges HTTP-Anforderungshandle oder andernfalls NULL zurück. Rufen Sie GetLastError auf, um erweiterte Fehlerinformationen zu erhalten. Zu den zurückgegebenen Fehlercodes gehören die folgenden.
Fehlercode | BESCHREIBUNG |
---|---|
|
Der Typ des angegebenen Handles ist für diesen Vorgang falsch. |
|
Ein interner Fehler ist aufgetreten. |
|
Die URL ist ungültig. |
|
Der Vorgang wurde abgebrochen, in der Regel, weil der Handle, an dem die Anforderung ausgeführt wurde, vor Abschluss des Vorgangs geschlossen wurde. |
|
Die URL hat ein anderes Schema als "http:" oder "https:" angegeben. |
|
Für den angeforderten Vorgang war nicht genügend Arbeitsspeicher verfügbar. (Windows-Fehlercode) |
Hinweise
Der Rückgabewert weist auf Erfolg oder Fehler hin. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.
Die WinHttpOpenRequest-Funktion erstellt ein neues HTTP-Anforderungshandle und speichert die angegebenen Parameter in diesem Handle. Ein HTTP-Anforderungshandle enthält eine Anforderung zum Senden an einen HTTP-Server und enthält alle RFC822/MIME/HTTP-Header, die als Teil der Anforderung gesendet werden sollen.
Wenn pwszVerb auf "HEAD" festgelegt ist, wird der Content-Length-Header ignoriert.
Wenn eine status Rückruffunktion mit WinHttpSetStatusCallback installiert wurde, gibt eine WINHTTP_CALLBACK_STATUS_HANDLE_CREATED Benachrichtigung an, dass WinHttpOpenRequest ein Anforderungshandle erstellt hat.
Nachdem die aufrufende Anwendung das von WinHttpOpenRequest zurückgegebene HINTERNET-Handle verwendet hat, muss es mit der WinHttpCloseHandle-Funktion geschlossen werden.
Beispiele
In diesem Beispiel wird gezeigt, wie Sie ein HINTERNET-Handle abrufen, eine HTTP-Sitzung öffnen, einen Anforderungsheader erstellen und diesen Header an den Server senden.
BOOL bResults = FALSE;
HINTERNET hSession = NULL,
hConnect = NULL,
hRequest = NULL;
// Use WinHttpOpen to obtain a session handle.
hSession = WinHttpOpen( L"A WinHTTP Example Program/1.0",
WINHTTP_ACCESS_TYPE_DEFAULT_PROXY,
WINHTTP_NO_PROXY_NAME,
WINHTTP_NO_PROXY_BYPASS, 0);
// Specify an HTTP server.
if (hSession)
hConnect = WinHttpConnect( hSession, L"www.wingtiptoys.com",
INTERNET_DEFAULT_HTTP_PORT, 0);
// Create an HTTP Request handle.
if (hConnect)
hRequest = WinHttpOpenRequest( hConnect, L"PUT",
L"/writetst.txt",
NULL, WINHTTP_NO_REFERER,
WINHTTP_DEFAULT_ACCEPT_TYPES,
0);
// Send a Request.
if (hRequest)
bResults = WinHttpSendRequest( hRequest,
WINHTTP_NO_ADDITIONAL_HEADERS,
0, WINHTTP_NO_REQUEST_DATA, 0,
0, 0);
// PLACE ADDITIONAL CODE HERE.
// Report any errors.
if (!bResults)
printf( "Error %d has occurred.\n", GetLastError());
// Close any open handles.
if (hRequest) WinHttpCloseHandle(hRequest);
if (hConnect) WinHttpCloseHandle(hConnect);
if (hSession) WinHttpCloseHandle(hSession);
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows XP, Windows 2000 Professional mit SP3 [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2003, Windows 2000 Server mit SP3 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | winhttp.h |
Bibliothek | Winhttp.lib |
DLL | Winhttp.dll |
Verteilbare Komponente | WinHTTP 5.0 und Internet Explorer 5.01 oder höher unter Windows XP und Windows 2000. |