InternetConnectA, fonction (wininet.h)

Ouvre une session FTP (File Transfer Protocol) ou HTTP pour un site donné.

Syntaxe

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
);

Paramètres

[in] hInternet

Handle retourné par un appel précédent à InternetOpen.

[in] lpszServerName

Pointeur vers une chaîne terminée par null qui spécifie le nom d’hôte d’un serveur Internet. La chaîne peut également contenir le numéro d’adresse IP du site, au format ASCII pointillé-décimal (par exemple, 11.0.1.45).

[in] nServerPort

Port TCP/IP (Transmission Control Protocol/Internet Protocol) sur le serveur. Ces indicateurs définissent uniquement le port utilisé. Le service est défini par la valeur de dwService. Ce paramètre peut prendre les valeurs suivantes.

Valeur Signification
INTERNET_DEFAULT_FTP_PORT
Utilise le port par défaut pour les serveurs FTP (port 21).
INTERNET_DEFAULT_GOPHER_PORT
Utilise le port par défaut pour les serveurs Gopher (port 70).
Note Windows XP et Windows Server 2003 R2 et versions antérieures uniquement.
 
INTERNET_DEFAULT_HTTP_PORT
Utilise le port par défaut pour les serveurs HTTP (port 80).
INTERNET_DEFAULT_HTTPS_PORT
Utilise le port par défaut pour les serveurs HTTPS (Secure Hypertext Transfer Protocol) (port 443).
INTERNET_DEFAULT_SOCKS_PORT
Utilise le port par défaut pour les serveurs de pare-feu SOCKS (port 1080).
INTERNET_INVALID_PORT_NUMBER
Utilise le port par défaut pour le service spécifié par dwService.

[in] lpszUserName

Pointeur vers une chaîne terminée par null qui spécifie le nom de l’utilisateur à ouvrir une session. Si ce paramètre a la valeur NULL, la fonction utilise une valeur par défaut appropriée. Pour le protocole FTP, la valeur par défaut est « anonymous ».

[in] lpszPassword

Pointeur vers une chaîne terminée par un caractère Null qui contient le mot de passe à utiliser pour ouvrir une session. Si lpszPassword et lpszUsername ont la valeur NULL, la fonction utilise le mot de passe « anonyme » par défaut. Dans le cas de FTP, le mot de passe par défaut est le nom de l’e-mail de l’utilisateur. Si lpszPassword a la valeur NULL, mais que lpszUsername n’est pas NULL, la fonction utilise un mot de passe vide.

[in] dwService

Type de service auquel accéder. Ce paramètre peut prendre les valeurs suivantes.

Valeur Signification
INTERNET_SERVICE_FTP
Service FTP.
INTERNET_SERVICE_GOPHER
Service Gopher.
Note Windows XP et Windows Server 2003 R2 et versions antérieures uniquement.
 
INTERNET_SERVICE_HTTP
Service HTTP.

[in] dwFlags

Options spécifiques au service utilisé. Si
dwService est INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE amène l’application à utiliser la sémantique FTP passive.

[in] dwContext

Pointeur vers une variable qui contient une valeur définie par l’application utilisée pour identifier le contexte d’application pour le handle retourné dans les rappels.

Valeur retournée

Retourne un handle valide à la session si la connexion réussit, ou NULL dans le cas contraire. Pour récupérer des informations d’erreur étendues, appelez GetLastError. Une application peut également utiliser InternetGetLastResponseInfo pour déterminer pourquoi l’accès au service a été refusé.

Remarques

Le tableau suivant décrit le comportement des quatre paramètres possibles de lpszUsername et lpszPassword.

lpszUsername lpszPassword Nom d’utilisateur envoyé au serveur FTP Mot de passe envoyé au serveur FTP
NULL NULL « anonyme » Nom de l’e-mail de l’utilisateur
Chaîne non NULL NULL lpszUsername ""
NULL Chaîne non NULL ERROR ERROR
Chaîne non NULL Chaîne non NULL lpszUsername lpszPassword
 

Pour les sites FTP, InternetConnect établit en fait une connexion avec le serveur ; pour d’autres, la connexion réelle n’est pas établie tant que l’application n’a pas demandé une transaction spécifique.

Pour une efficacité maximale, les applications utilisant les protocoles HTTP doivent essayer de réduire les appels à InternetConnect et d’éviter d’appeler cette fonction pour chaque transaction demandée par l’utilisateur. Une façon d’y parvenir consiste à conserver un petit cache de handles retournés à partir d’InternetConnect ; lorsque l’utilisateur effectue une demande auprès d’un serveur précédemment consulté, ce handle de session est toujours disponible.

Une fois que l’application appelante a terminé d’utiliser le handle HINTERNET retourné par InternetConnect, elle doit être fermée à l’aide de la fonction InternetCloseHandle .

Note Quand une requête est envoyée en mode asynchrone (le paramètre dwFlags dwOpen spécifie INTERNET_FLAG_ASYNC) et que le paramètre dwContext est égal à zéro (INTERNET_NO_CALLBACK), la fonction de rappel définie avec InternetSetStatusCallback sur le handle de connexion n’est pas appelée, mais l’appel est toujours effectué en mode asynchrone.

Vous trouverez des exemples d’utilisation d’InternetConnect dans les rubriques suivantes.

Comme tous les autres aspects de l’API WinINet, cette fonction ne peut pas être appelée en toute sécurité à partir de DllMain ou des constructeurs et destructeurs d’objets globaux.

Note WinINet ne prend pas en charge les implémentations de serveur. En outre, il ne doit pas être utilisé à partir d’un service. Pour les implémentations de serveur ou les services, utilisez Microsoft Windows HTTP Services (WinHTTP).
 

Notes

L’en-tête wininet.h définit InternetConnect en tant qu’alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. La combinaison de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête wininet.h
Bibliothèque Wininet.lib
DLL Wininet.dll

Voir aussi

Activation des fonctionnalités Internet

Fonctions WinINet