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
);
Die Parameter
[in] hConnect
HINTERNET-Verbindungshandle zu einer HTTP-Sitzung, die von WinHttpConnect zurückgegeben wird.
[in] pwszVerb
Zeigen Sie auf eine Zeichenfolge, die das HTTP-Verb enthält, das in der Anforderung verwendet werden soll. Wenn dieser Parameter NULL ist, verwendet die Funktion GET als HTTP-Verb. Anmerkung Diese Zeichenfolge sollte groß geschrieben sein. Viele Server behandeln HTTP-Verben als Groß-/Kleinschreibung, und die Internet Engineering Task Force (IETF)-Anforderungen für Kommentare (RFCs) verwenden diese Verben nur mit Großbuchstaben.
[in] pwszObjectName
Zeigen Sie auf eine mit Null beendete 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
Zeigen Sie auf eine Zeichenfolge, die die HTTP-Version enthält. Wenn dieser Parameter NULL ist, verwendet die Funktion HTTP/1.1.
[in] pwszReferrer
Zeigen Sie 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 referenzierendes Dokument angegeben.
[in] ppwszAcceptTypes
Zeiger auf ein null-beendetes Array von Zeichenfolgenzeigern, die vom Client akzeptierte Medientypen angeben. Wenn dieser Parameter auf WINHTTP_DEFAULT_ACCEPT_TYPES festgelegt ist, werden vom Client keine Typen akzeptiert. In der Regel behandeln Server einen Mangel an akzeptierten Typen als Hinweis darauf, 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 IANA definierte Medientypen unter http://www.iana.org/assignments/media-types/.
[in] dwFlags
Unsigned long integer value that contains the Internet flag values. Dabei kann es sich um einen oder mehrere der folgenden Werte handeln:
Rückgabewert
Gibt ein gültiges HTTP-Anforderungshandle zurück, wenn dies erfolgreich ist, oder NULL , wenn dies nicht der Fall ist. Rufen Sie getLastError für erweiterte Fehlerinformationen auf. Zu den zurückgegebenen Fehlercodes gehören die folgenden.
| Fehlercode | Description |
|---|---|
|
Der typ des bereitgestellten Handles ist für diesen Vorgang falsch. |
|
Interner Fehler. |
|
Die URL ist ungültig. |
|
Der Vorgang wurde abgebrochen, in der Regel weil der Handle, für den die Anforderung ausgeführt wurde, vor Abschluss des Vorgangs geschlossen wurde. |
|
Die URL hat ein anderes Schema als "http:" oder "https:" angegeben. |
|
Nicht genügend Arbeitsspeicher war verfügbar, um den angeforderten Vorgang abzuschließen. (Windows-Fehlercode) |
Bemerkungen
Der Rückgabewert gibt Erfolg oder Fehler an. Rufen Sie GetLastError auf, um erweiterte Fehlerinformationen abzurufen.
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 Header "Content-Length" ignoriert.
Wenn eine Statusrü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 sie mit der WinHttpCloseHandle-Funktion geschlossen werden.
Examples
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 |
|---|---|
| Mindestens unterstützter Client | Windows XP, Windows 2000 Professional mit SP3 [nur Desktop-Apps] |
| mindestens unterstützte Server- | Windows Server 2003, Windows 2000 Server mit SP3 [nur Desktop-Apps] |
| Zielplattform- | Fenster |
| Header | winhttp.h |
| Library | Winhttp.lib |
| DLL | Winhttp.dll |
| Weiterverteilbar | WinHTTP 5.0 und Internet Explorer 5.01 oder höher unter Windows XP und Windows 2000. |