Share via


HttpOpenRequestW-Funktion (wininet.h)

Erstellt ein HTTP-Anforderungshandle.

Syntax

HINTERNET HttpOpenRequestW(
  [in] HINTERNET hConnect,
  [in] LPCWSTR   lpszVerb,
  [in] LPCWSTR   lpszObjectName,
  [in] LPCWSTR   lpszVersion,
  [in] LPCWSTR   lpszReferrer,
  [in] LPCWSTR   *lplpszAcceptTypes,
  [in] DWORD     dwFlags,
  [in] DWORD_PTR dwContext
);

Parameter

[in] hConnect

Ein Handle für eine von InternetConnect zurückgegebene HTTP-Sitzung.

[in] lpszVerb

Ein Zeiger auf eine NULL-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.

[in] lpszObjectName

Ein Zeiger auf eine NULL-Zeichenfolge, die den Namen des Zielobjekts des angegebenen HTTP-Verbs enthält. Dies ist in der Regel ein Dateiname, ein ausführbares Modul oder ein Suchbezeichner.

[in] lpszVersion

Ein Zeiger auf eine NULL-Zeichenfolge, die die HTTP-Version enthält, die in der Anforderung verwendet werden soll. Einstellungen in Internet Explorer überschreiben den in diesem Parameter angegebenen Wert.

Wenn dieser Parameter NULL ist, verwendet die Funktion eine HTTP-Version von 1.1 oder 1.0, abhängig vom Wert der Internet-Explorer-Einstellungen.

Wert Bedeutung
HTTP/1.0
HTTP-Version 1.0
HTTP/1.1
HTTP-Version 1.1

[in] lpszReferrer

Ein Zeiger auf eine NULL-Zeichenfolge, die die URL des Dokuments angibt, aus dem die URL in der Anforderung (lpszObjectName) abgerufen wurde. Wenn dieser Parameter NULL ist, wird kein Verweis angegeben.

[in] lplpszAcceptTypes

Ein Zeiger auf ein null-beendetes Array von Zeichenfolgen, das Medientypen angibt, die vom Client akzeptiert werden. Es folgt ein Beispiel.

PCTSTR rgpszAcceptTypes[] = {_T("text/*"), NULL};

Wenn das Array nicht ordnungsgemäß mit einem NULL-Zeiger beendet werden kann, kommt es zu einem Absturz.

Wenn dieser Parameter NULL ist, werden keine Typen vom Client akzeptiert. Server interpretieren im Allgemeinen einen Mangel an Annahmetypen, um anzugeben, dass der Client nur Dokumente vom Typ "text/*" akzeptiert (also nur Textdokumente – keine Bilder oder andere Binärdateien).

[in] dwFlags

Internetoptionen. Bei diesem Parameter kann es sich um einen der folgenden Werte handeln.

Wert Bedeutung
INTERNET_FLAG_CACHE_IF_NET_FAIL
Gibt die Ressource aus dem Cache zurück, wenn die Netzwerkanforderung für die Ressource aufgrund eines ERROR_INTERNET_CONNECTION_RESET (die Verbindung mit dem Server wurde zurückgesetzt) oder ERROR_INTERNET_CANNOT_CONNECT (der Versuch, eine Verbindung mit dem Server herzustellen, fehlgeschlagen) fehlschlägt.
INTERNET_FLAG_HYPERLINK
Erzwingt ein Erneutes Laden, wenn keine Ablaufzeit und keine LastModified-Zeit vom Server zurückgegeben wurde, wenn ermittelt wird, ob das Element aus dem Netzwerk neu geladen werden soll.
INTERNET_FLAG_IGNORE_CERT_CN_INVALID
Deaktiviert die Überprüfung von SSL-/PCT-basierten Zertifikaten, die vom Server mit dem in der Anforderung angegebenen Hostnamen zurückgegeben werden. WinINet-Funktionen verwenden eine einfache Überprüfung mit Zertifikaten, indem sie für übereinstimmende Hostnamen und einfache Wildcardregeln vergleichen.
INTERNET_FLAG_IGNORE_CERT_DATE_INVALID
Deaktiviert die Überprüfung von SSL-/PCT-basierten Zertifikaten auf ordnungsgemäße Gültigkeitsdaten.
INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP
Deaktiviert die Erkennung dieser speziellen Umleitungsart. Wenn dieses Flag verwendet wird, lassen WinINet-Funktionen Transparent Umleitungen von HTTPS zu HTTP-URLs zu.
INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS
Deaktiviert die Erkennung dieser speziellen Umleitungsart. Wenn dieses Flag verwendet wird, lassen WinINet-Funktionen Transparent Umleitungen von HTTP zu HTTPS-URLs zu.
INTERNET_FLAG_KEEP_CONNECTION
Verwendet Keep-Alive-Semantik, sofern verfügbar, für die Verbindung. Dieses Flag ist für Microsoft Network (MSN), NT LAN Manager (NTLM) und andere Authentifizierungstypen erforderlich.
INTERNET_FLAG_NEED_FILE
Bewirkt, dass eine temporäre Datei erstellt wird, wenn die Datei nicht zwischengespeichert werden kann.
INTERNET_FLAG_NO_AUTH
Versucht nicht automatisch die Authentifizierung.
INTERNET_FLAG_NO_AUTO_REDIRECT
Die Umleitung in HttpSendRequest wird nicht automatisch verarbeitet.
INTERNET_FLAG_NO_CACHE_WRITE
Fügt die zurückgegebene Entität nicht dem Cache hinzu.
INTERNET_FLAG_NO_COOKIES
Fügt Nicht automatisch Cookie-Header zu Anforderungen hinzu und fügt der Cookie-Datenbank nicht automatisch zurückgegebene Cookies hinzu.
INTERNET_FLAG_NO_UI
Deaktiviert das Cookie-Dialogfeld.
INTERNET_FLAG_PRAGMA_NOCACHE
Erzwingt, dass die Anforderung vom Ursprungsserver aufgelöst wird, auch wenn eine zwischengespeicherte Kopie auf dem Proxy vorhanden ist.
INTERNET_FLAG_RELOAD
Erzwingt einen Download der angeforderten Datei, des angeforderten Objekts oder der angeforderten Verzeichnisliste vom ursprünglichen Server, nicht aus dem Cache.
INTERNET_FLAG_RESYNCHRONIZE
Lädt HTTP-Ressourcen neu, wenn die Ressource seit dem letzten Download geändert wurde. Alle FTP-Ressourcen werden neu geladen.

Windows XP und Windows Server 2003 R2 und früher: Gopher-Ressourcen werden ebenfalls neu geladen.

INTERNET_FLAG_SECURE
Verwendung eine sichere Transaktionssemantik. Dies übersetzt die Verwendung von Secure Sockets Layer/Private Communications Technology (SSL/PCT) und ist nur in HTTP-Anforderungen sinnvoll.

[in] dwContext

Ein Zeiger auf eine Variable, die den von der Anwendung definierten Wert enthält, der diesen Vorgang allen Anwendungsdaten ordnet.

Rückgabewert

Gibt bei erfolgreicher Ausführung ein HTTP-Anforderungshandle oder andernfalls NULL zurück. Rufen Sie GetLastError auf, um erweiterte Fehlerinformationen abzurufen.

Hinweise

Die HttpOpenRequest-Funktion erstellt ein neues HTTP-Anforderungshandle und speichert die angegebenen Parameter in diesem Handle. Ein HTTP-Anforderungshandle enthält eine Anforderung, die an einen HTTP-Server gesendet werden soll, und enthält alle RFC822/MIME/HTTP-Header, die als Teil der Anforderung gesendet werden sollen.

Wenn ein anderes Verb als "GET" oder "POST" angegeben wird, legt HttpOpenRequest automatisch INTERNET_FLAG_NO_CACHE_WRITE und INTERNET_FLAG_RELOAD für die Anforderung fest.

Wenn lpszVerb bei Microsoft Internet Explorer 5 und höher auf "HEAD" festgelegt ist, wird der Content-Length-Header bei Antworten von HTTP/1.1-Servern ignoriert.

Unter Windows 7, Windows Server 2008 R2 und höher wird der lpszVersion-Parameter von Internet Explorer-Einstellungen überschrieben. Der EnableHttp1_1 ist ein Registrierungswert unter HKLM\Software\Microsoft\InternetExplorer\AdvacnedOptions\HTTP\GENABLE gesteuert durch Internetoptionen, der in Internet Explorer für das System festgelegt ist. Der EnableHttp1_1 Wert ist standardmäßig auf 1 festgelegt. Die HttpOpenRequest-Funktion aktualisiert alle HTTP-Versionen kleiner als 1.1 auf HTTP-Version 1.1, wenn EnableHttp1_1 auf 1 festgelegt ist.

Nachdem die aufrufende Anwendung das von HttpOpenRequest zurückgegebene HINTERNET-Handle verwendet hat, muss es mit der InternetCloseHandle-Funktion geschlossen werden.

Hinweis Wenn eine Anforderung im asynchronen Modus gesendet wird (der dwFlags-Parameter von InternetOpen gibt INTERNET_FLAG_ASYNC an), und der dwContext-Parameter ist 0 (INTERNET_NO_CALLBACK), wird der Rückruffunktionssatz mit InternetSetStatusCallback für das Anforderungshandle nicht aufgerufen, der Aufruf wird jedoch weiterhin im asynchronen Modus ausgeführt.

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 HttpOpenRequest 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