Freigeben über


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 zu einer HTTP-Sitzung, die von InternetConnectzurückgegeben wird.

[in] lpszVerb

Ein Zeiger auf eine NULL--terminated-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--terminated-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--terminated-Zeichenfolge, die die HTTP-Version enthält, die in der Anforderung verwendet werden soll. Die Einstellungen in Internet Explorer setzen den in diesem Parameter angegebenen Wert außer Kraft.

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

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

[in] lpszReferrer

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

[in] lplpszAcceptTypes

Ein Zeiger auf ein null-terminated array of strings that indicates media types accepted by the client. Hier ist ein Beispiel.

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

Wenn das Array nicht ordnungsgemäß mit einem NULL-Zeiger beendet wird, tritt ein Absturz auf.

Wenn dieser Parameter NULL-ist, werden vom Client keine Typen akzeptiert. Server interpretieren in der Regel 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. Dieser Parameter kann eine der folgenden Werte sein.

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 (der Versuch, eine Verbindung mit dem Server herzustellen fehlgeschlagen).
INTERNET_FLAG_HYPERLINK
Erzwingt ein Neuladen, wenn keine Ablaufzeit aufgetreten ist, und keine lastModified-Zeit, die vom Server zurückgegeben wird, 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 anhand des in der Anforderung angegebenen Hostnamens zurückgegeben werden. WinINet-Funktionen verwenden eine einfache Überprüfung auf Zertifikate, indem sie mit übereinstimmenden Hostnamen und einfachen Wildcard-Regeln 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 dieses speziellen Umleitungstyps. Wenn dieses Flag verwendet wird, lässt WinINet-Funktionen Umleitungen von HTTPS zu HTTP-URLs transparent zu.
INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS
Deaktiviert die Erkennung dieses speziellen Umleitungstyps. Wenn dieses Flag verwendet wird, lassen WinINet-Funktionen Umleitungen von HTTP zu HTTPS-URLs transparent zu.
INTERNET_FLAG_KEEP_CONNECTION
Verwendet Keep-Alive-Semantik, falls verfügbar, für die Verbindung. Dieses Kennzeichen 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 nicht automatisch in HttpSendRequest-.
INTERNET_FLAG_NO_CACHE_WRITE
Fügt die zurückgegebene Entität nicht zum Cache hinzu.
INTERNET_FLAG_NO_COOKIES
Fügt keine Cookieheader automatisch zu Anforderungen 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 den Download der angeforderten Datei, des Objekts oder des Verzeichniseintrags vom Ursprungsserver, nicht aus dem Cache.
INTERNET_FLAG_RESYNCHRONIZE
Lädt HTTP-Ressourcen neu, wenn die Ressource seit dem letzten Herunterladen 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
Verwendet sichere Transaktionssemantik. Dies übersetzt sich in die Verwendung von Secure Sockets Layer/Private Communications Technology (SSL/PCT) und ist nur in HTTP-Anforderungen aussagekräftig.

[in] dwContext

Ein Zeiger auf eine Variable, die den anwendungsdefinierten Wert enthält, der diesen Vorgang allen Anwendungsdaten zuordnet.

Rückgabewert

Gibt ein HTTP-Anforderungshandle zurück, falls erfolgreich, oder NULL- andernfalls. Rufen Sie GetLastErrorauf, um erweiterte Fehlerinformationen abzurufen.

Bemerkungen

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 ist, HttpOpenRequest automatisch INTERNET_FLAG_NO_CACHE_WRITE und INTERNET_FLAG_RELOAD für die Anforderung festlegt.

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

Unter Windows 7, Windows Server 2008 R2 und höher wird der parameter lpszVersion durch Internet Explorer-Einstellungen außer Kraft gesetzt. Der EnableHttp1_1 ist ein Registrierungswert unter HKLM\Software\Microsoft\InternetExplorer\AdvacnedOptions\HTTP\GENABLE gesteuert durch Internetoptionen, die in Internet Explorer für das System festgelegt sind. Der Standardwert für EnableHttp1_1 ist 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 die Verwendung des HINTERNET- Von HttpOpenRequestzurückgegebenen Handle abgeschlossen hat, muss sie mit der InternetCloseHandle--Funktion geschlossen werden.

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

Wie alle anderen Aspekte der WinINet-API kann diese Funktion nicht innerhalb von DllMain oder den Konstruktoren und Destruktoren globaler Objekte sicher aufgerufen werden.

Hinweis WinINet keine Serverimplementierungen unterstützt. Darüber hinaus sollte sie nicht von einem Dienst verwendet werden. Verwenden Sie für Serverimplementierungen oder -dienste Microsoft Windows HTTP Services (WinHTTP).
 

Anmerkung

Der wininet.h-Header definiert HttpOpenRequest als Alias, der automatisch die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante 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
mindestens unterstützte Client- Windows 2000 Professional [nur Desktop-Apps]
mindestens unterstützte Server- Windows 2000 Server [nur Desktop-Apps]
Zielplattform- Fenster
Header- wininet.h
Library Wininet.lib
DLL- Wininet.dll

Siehe auch

HTTP-Sitzungen

WinINet-Funktionen