InternetConnectA-Funktion (wininet.h)
Öffnet eine FTP- oder HTTP-Sitzung für eine bestimmte Website.
Syntax
HINTERNET InternetConnectA(
[in] HINTERNET hInternet,
[in] LPCSTR lpszServerName,
[in] INTERNET_PORT nServerPort,
[in] LPCSTR lpszUserName,
[in] LPCSTR lpszPassword,
[in] DWORD dwService,
[in] DWORD dwFlags,
[in] DWORD_PTR dwContext
);
Parameter
[in] hInternet
Handle, das von einem vorherigen Aufruf von InternetOpen zurückgegeben wurde.
[in] lpszServerName
Zeiger auf eine null-beendete Zeichenfolge, die den Hostnamen eines Internetservers angibt. Alternativ kann die Zeichenfolge die IP-Nummer der Website im ASCII-Dezimalformat enthalten (z. B. 11.0.1.45).
[in] nServerPort
TCP/IP-Port (Transmission Control Protocol/Internet Protocol) auf dem Server. Diese Flags legen nur den port fest, der verwendet wird. Der Dienst wird durch den Wert von dwService festgelegt. Dieser Parameter kann einen der folgenden Werte annehmen.
Wert | Bedeutung |
---|---|
|
Verwendet den Standardport für FTP-Server (Port 21). |
|
Verwendet den Standardport für Gopher-Server (Port 70). Hinweis Nur Windows XP und Windows Server 2003 R2 und früher.
|
|
Verwendet den Standardport für HTTP-Server (Port 80). |
|
Verwendet den Standardport für HTTPS-Server (Secure Hypertext Transfer Protocol) (Port 443). |
|
Verwendet den Standardport für SOCKS-Firewallserver (Port 1080). |
|
Verwendet den Standardport für den von dwService angegebenen Dienst. |
[in] lpszUserName
Zeiger auf eine NULL-Zeichenfolge, die den Namen des Benutzers angibt, der sich anmelden soll. Wenn dieser Parameter NULL ist, verwendet die Funktion einen entsprechenden Standardwert. Für das FTP-Protokoll ist der Standardwert "anonym".
[in] lpszPassword
Zeiger auf eine NULL-Zeichenfolge, die das Kennwort enthält, das für die Anmeldung verwendet werden soll. Wenn sowohl lpszPassword als auch lpszUsernameNULL sind, verwendet die Funktion das standardmäßige "anonyme" Kennwort. Im Fall von FTP ist das Standardkennwort der E-Mail-Name des Benutzers. Wenn lpszPasswordNULL ist, aber lpszUsername nicht NULL ist, verwendet die Funktion ein leeres Kennwort.
[in] dwService
Typ des Diensts, auf den zugegriffen werden soll. Dieser Parameter kann einen der folgenden Werte annehmen.
Wert | Bedeutung |
---|---|
|
FTP-Dienst. |
|
Gopher-Dienst. Hinweis Nur Windows XP und Windows Server 2003 R2 und früher.
|
|
HTTP-Dienst. |
[in] dwFlags
Spezifische Optionen für den verwendeten Dienst. Wenn
dwService ist INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE bewirkt, dass die Anwendung passive FTP-Semantik verwendet.
[in] dwContext
Zeiger auf eine Variable, die einen anwendungsdefinierten Wert enthält, der verwendet wird, um den Anwendungskontext für das zurückgegebene Handle in Rückrufen zu identifizieren.
Rückgabewert
Gibt ein gültiges Handle für die Sitzung zurück, wenn die Verbindung erfolgreich ist, oder andernfalls NULL . Rufen Sie GetLastError auf, um erweiterte Fehlerinformationen abzurufen. Eine Anwendung kann auch InternetGetLastResponseInfo verwenden, um zu bestimmen, warum der Zugriff auf den Dienst verweigert wurde.
Hinweise
In der folgenden Tabelle wird das Verhalten für die vier möglichen Einstellungen lpszUsername und lpszPassword beschrieben.
lpszUsername | lpszPassword | Benutzername, der an den FTP-Server gesendet wird | An FTP-Server gesendetes Kennwort |
---|---|---|---|
NULL | NULL | "anonym" | E-Mail-Name des Benutzers |
Nicht-NULL-Zeichenfolge | NULL | lpszUsername | "" |
NULL | Nicht-NULL-Zeichenfolge | ERROR | ERROR |
Nicht-NULL-Zeichenfolge | Nicht-NULL-Zeichenfolge | lpszUsername | lpszPassword |
Bei FTP-Websites stellt InternetConnect tatsächlich eine Verbindung mit dem Server her. Bei anderen wird die tatsächliche Verbindung erst hergestellt, wenn die Anwendung eine bestimmte Transaktion anfordert.
Um maximale Effizienz zu erzielen, sollten Anwendungen, die die HTTP-Protokolle verwenden, versuchen, Aufrufe von InternetConnect zu minimieren und vermeiden, dass diese Funktion für jede vom Benutzer angeforderte Transaktion aufgerufen wird. Eine Möglichkeit, dies zu erreichen, besteht darin, einen kleinen Cache von Handles beizubehalten, die von InternetConnect zurückgegeben werden. wenn der Benutzer eine Anforderung an einen Server sendet, auf den zuvor zugegriffen wurde, ist dieses Sitzungshandle weiterhin verfügbar.
Nachdem die aufrufende Anwendung das von InternetConnect 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), wird der Rückruffunktionssatz mit InternetSetStatusCallback für das Verbindungshandle nicht aufgerufen, der Aufruf wird jedoch weiterhin im asynchronen Modus ausgeführt.
Beispiele für die InternetConnect-Nutzung finden Sie in den folgenden Themen.
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
Der wininet.h-Header definiert InternetConnect 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 |