HttpOpenRequestA-Funktion (wininet.h)

Erstellt ein HTTP-Anforderungshandle.

Syntax

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

Parameter

[in] hConnect

Ein Handle für eine HTTP-Sitzung, die von InternetConnect zurückgegeben wird.

[in] lpszVerb

Ein Zeiger auf eine NULL-endende Zeichenfolge, die das in der Anforderung zu verwendende HTTP-Verb enthält. Wenn dieser Parameter NULL ist, verwendet die Funktion GET als HTTP-Verb.

[in] lpszObjectName

Ein Zeiger auf eine NULL-endende Zeichenfolge, die den Namen des Zielobjekts des angegebenen HTTP-Verbs enthält. Dies ist im Allgemeinen ein Dateiname, ein ausführbares Modul oder ein Suchspezifizierer.

[in] lpszVersion

Ein Zeiger auf eine NULL-beendete 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-endende Zeichenfolge, die die URL des Dokuments angibt, aus dem die URL in der Anforderung (lpszObjectName) abgerufen wurde. Wenn dieser Parameter NULL ist, wird kein Referrer angegeben.

[in] lplpszAcceptTypes

Ein Zeiger auf ein Array mit NULL-Endung von Zeichenfolgen, das die vom Client akzeptierten Medientypen angibt. Es folgt ein Beispiel.

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

Wenn das Array nicht ordnungsgemäß mit einem NULL-Zeiger beendet werden kann, führt dies zu einem Absturz.

Wenn dieser Parameter NULL ist, werden vom Client keine Typen akzeptiert. Server interpretieren im Allgemeinen einen Mangel an Akzeptiert-Typen, um anzugeben, dass der Client nur Dokumente vom Typ "text/*" akzeptiert (d. a. 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 einer ERROR_INTERNET_CONNECTION_RESET (die Verbindung mit dem Server wurde zurückgesetzt) oder ERROR_INTERNET_CANNOT_CONNECT (fehler beim Herstellen einer Verbindung mit dem Server) 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 von Zertifikaten, indem sie ü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 Umleitungen von HTTPS zu HTTP-URLs transparent zu.
INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS
Deaktiviert die Erkennung dieser speziellen Umleitungsart. Wenn dieses Flag verwendet wird, lassen WinINet-Funktionen Umleitungen von HTTP zu HTTPS-URLs transparent 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
Behandelt die Umleitung in HttpSendRequest nicht automatisch.
INTERNET_FLAG_NO_CACHE_WRITE
Fügt die zurückgegebene Entität nicht dem Cache hinzu.
INTERNET_FLAG_NO_COOKIES
Fügt Anforderungen nicht automatisch Cookie-Header hinzu und fügt der Cookie-Datenbank nicht automatisch zurückgegebene Cookies hinzu.
INTERNET_FLAG_NO_UI
Deaktiviert das Dialogfeld "Cookie".
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 erneut 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 bedeutet 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 zuordnet.

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 bei Microsoft Internet Explorer 5 und höher lpszVerb 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. Die EnableHttp1_1 ist ein Registrierungswert unter HKLM\Software\Microsoft\InternetExplorer\AdvacnedOptions\HTTP\GENABLE, der von Internetoptionen gesteuert wird, die im Internet Explorer für das System festgelegt ist. Der EnableHttp1_1 Wert ist standardmäßig 1. Die HttpOpenRequest-Funktion aktualisiert alle HTTP-Versionen unter 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 null (INTERNET_NO_CALLBACK) ist, wird die mit InternetSetStatusCallback für das Anforderungshandle festgelegte Rückruffunktion 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 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 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

   
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