Fonction InternetOpenUrlA (wininet.h)

Ouvre une ressource spécifiée par une URL FTP ou HTTP complète.

Syntaxe

HINTERNET InternetOpenUrlA(
  [in] HINTERNET hInternet,
  [in] LPCSTR    lpszUrl,
  [in] LPCSTR    lpszHeaders,
  [in] DWORD     dwHeadersLength,
  [in] DWORD     dwFlags,
  [in] DWORD_PTR dwContext
);

Paramètres

[in] hInternet

Handle de la session Internet active. Le handle doit avoir été retourné par un appel précédent à InternetOpen.

[in] lpszUrl

Pointeur vers une variable de chaîne terminée par null qui spécifie l’URL à commencer par la lecture. Seules les URL commençant par ftp :, http :, ou https : sont prises en charge.

[in] lpszHeaders

Pointeur vers une chaîne terminée par null qui spécifie les en-têtes à envoyer au serveur HTTP. Pour plus d’informations, consultez la description du paramètre lpszHeaders dans la fonction HttpSendRequest .

[in] dwHeadersLength

Taille des en-têtes supplémentaires, en TCHAR. Si ce paramètre a la valeur -1L et que lpszHeaders n’a pas la valeur NULL, lpszHeaders est supposé être terminé à zéro (ASCIIZ) et la longueur est calculée.

[in] dwFlags

Ce paramètre peut prendre les valeurs suivantes.

Valeur Signification
INTERNET_FLAG_EXISTING_CONNECT
Tente d’utiliser un objet InternetConnect existant s’il en existe un avec les mêmes attributs requis pour effectuer la demande. Cela est utile uniquement pour les opérations FTP, car FTP est le seul protocole qui effectue généralement plusieurs opérations au cours de la même session. L’API WinINet met en cache un handle de connexion unique pour chaque handle HINTERNET généré par InternetOpen. InternetOpenUrl utilise cet indicateur pour les connexions HTTP et FTP.
INTERNET_FLAG_HYPERLINK
Force un rechargement s’il n’y a pas d’heure d’expiration et qu’aucune heure LastModified n’a été retournée par le serveur pour déterminer s’il faut recharger l’élément à partir du réseau.
INTERNET_FLAG_IGNORE_CERT_CN_INVALID
Désactive la vérification des certificats SSL/PCT retournés par le serveur par rapport au nom d’hôte indiqué dans la demande. Les fonctions WinINet utilisent une case activée simple par rapport aux certificats en comparant les noms d’hôtes et les règles de caractères génériques simples.
INTERNET_FLAG_IGNORE_CERT_DATE_INVALID
Désactive la vérification des certificats SSL/PCT pour les dates de validité appropriées.
INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP
Désactive la détection de ce type spécial de redirection. Lorsque cet indicateur est utilisé, WinINet autorise en toute transparence les redirections de HTTPS vers les URL HTTP.
INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS
Désactive la détection de ce type spécial de redirection. Lorsque cet indicateur est utilisé, WinINet autorise en toute transparence les redirections de HTTP vers les URL HTTPS.
INTERNET_FLAG_KEEP_CONNECTION
Utilise la sémantique keep-alive, si disponible, pour la connexion. Cet indicateur est requis pour Microsoft Network (MSN), NTLM et d’autres types d’authentification.
INTERNET_FLAG_NEED_FILE
Provoque la création d’un fichier temporaire si le fichier ne peut pas être mis en cache.
INTERNET_FLAG_NO_AUTH
Ne tente pas l’authentification automatiquement.
INTERNET_FLAG_NO_AUTO_REDIRECT
Ne gère pas automatiquement la redirection dans HttpSendRequest.
INTERNET_FLAG_NO_CACHE_WRITE
N’ajoute pas l’entité retournée au cache.
INTERNET_FLAG_NO_COOKIES
N’ajoute pas automatiquement d’en-têtes de cookie aux demandes et n’ajoute pas automatiquement les cookies retournés à la base de données de cookies.
INTERNET_FLAG_NO_UI
Désactive la boîte de dialogue cookie.
INTERNET_FLAG_PASSIVE
Utilise la sémantique FTP passive. InternetOpenUrl utilise cet indicateur pour les fichiers et répertoires FTP.
INTERNET_FLAG_PRAGMA_NOCACHE
Force la requête à être résolue par le serveur d’origine, même si une copie mise en cache existe sur le proxy.
INTERNET_FLAG_RAW_DATA
Retourne les données sous forme de structure WIN32_FIND_DATA lors de la récupération des informations de répertoire FTP. Si cet indicateur n’est pas spécifié ou si l’appel a été effectué via un proxy CERN, InternetOpenUrl renvoie la version HTML du répertoire.

Windows XP et Windows Server 2003 R2 et versions antérieures : Retourne également des données en tant que structure de GOPHER_FIND_DATA lors de la récupération des informations de répertoire Gopher.

INTERNET_FLAG_RELOAD
Force le téléchargement du fichier, de l’objet ou de la liste de répertoires demandés à partir du serveur d’origine, et non à partir du cache.
INTERNET_FLAG_RESYNCHRONIZE
Recharge les ressources HTTP si la ressource a été modifiée depuis le dernier téléchargement. Toutes les ressources FTP sont rechargées.

Windows XP et Windows Server 2003 R2 et versions antérieures : Les ressources Gopher sont également rechargées.

INTERNET_FLAG_SECURE
Utilise la sémantique de transaction sécurisée. Cela se traduit par l’utilisation du protocole SSL/Private Communications Technology (SSL/PCT) et n’est significatif que dans les requêtes HTTP.

[in] dwContext

Pointeur vers une variable qui spécifie la valeur définie par l’application qui est passée, avec le handle retourné, à toutes les fonctions de rappel.

Valeur retournée

Retourne un handle valide à l’URL si la connexion est établie avec succès, ou NULL si la connexion échoue. Pour récupérer un message d’erreur spécifique, appelez GetLastError. Pour déterminer la raison pour laquelle l’accès au service a été refusé, appelez InternetGetLastResponseInfo.

Remarques

Appelez d’abord InternetCanonicalizeUrl si l’URL utilisée contient une URL relative et une URL de base séparées par des espaces vides.

Il s’agit d’une fonction générale qu’une application peut utiliser pour récupérer des données sur l’un des protocoles pris en charge par WinINet. Cette fonction est particulièrement utile lorsque l’application n’a pas besoin d’accéder aux détails d’un protocole, mais nécessite uniquement les données correspondant à une URL. La fonction InternetOpenUrl analyse la chaîne d’URL, établit une connexion au serveur et se prépare à télécharger les données identifiées par l’URL. L’application peut ensuite utiliser InternetReadFile (pour les fichiers) ou InternetFindNextFile (pour les répertoires) pour récupérer les données d’URL. Il n’est pas nécessaire d’appeler InternetConnect avant InternetOpenUrl.

Windows XP et Windows Server 2003 R2 et versions antérieures : InternetOpenUrl désactive Gopher sur les ports inférieurs à 1024, à l’exception du port 70 (port Gopher standard) et du port 105 généralement utilisé pour les recherches de noms de l’organisation des services centraux (CSO).

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

Note Lorsque vous travaillez 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 session n’est pas appelée, mais l’appel est toujours effectué en mode asynchrone.

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 InternetOpenUrl comme 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

Gestion des localisateurs de ressources uniformes

Fonctions WinINet