Partager via


HttpOpenRequestW, fonction (wininet.h)

Crée un handle de requête HTTP.

Syntaxe

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

Paramètres

[in] hConnect

Handle vers une session HTTP retournée par InternetConnect.

[in] lpszVerb

Pointeur vers une chaîne null-terminated qui contient le verbe HTTP à utiliser dans la requête. Si ce paramètre est NULL, la fonction utilise GET comme verbe HTTP.

[in] lpszObjectName

Pointeur vers une chaîne null-terminated qui contient le nom de l’objet cible du verbe HTTP spécifié. Il s’agit généralement d’un nom de fichier, d’un module exécutable ou d’un spécificateur de recherche.

[in] lpszVersion

Pointeur vers une chaîne null-terminated qui contient la version HTTP à utiliser dans la requête. Les paramètres dans Internet Explorer remplacent la valeur spécifiée dans ce paramètre.

Si ce paramètre est NULL, la fonction utilise une version HTTP de 1.1 ou 1.0, en fonction de la valeur des paramètres Internet Explorer.

Valeur Signification
HTTP/1.0
HTTP version 1.0
HTTP/1.1
HTTP version 1.1

[in] lpszReferrer

Pointeur vers une chaîne null-terminated qui spécifie l’URL du document à partir duquel l’URL de la requête (lpszObjectName) a été obtenue. Si ce paramètre est NULL, aucun référent n’est spécifié.

[in] lplpszAcceptTypes

Pointeur vers un tableau null-terminated de chaînes qui indique les types de supports acceptés par le client. Voici un exemple.

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

L’échec de l’arrêt correct du tableau avec un pointeur NULL entraîne un blocage.

Si ce paramètre est null, aucun type n’est accepté par le client. Les serveurs interprètent généralement un manque de types d’acceptation pour indiquer que le client accepte uniquement les documents de type « text/* » (autrement dit, seuls les documents texte , aucune image ou d’autres fichiers binaires).

[in] dwFlags

Options Internet. Ce paramètre peut être l’une des valeurs suivantes.

Valeur Signification
INTERNET_FLAG_CACHE_IF_NET_FAIL
Retourne la ressource à partir du cache si la demande réseau de la ressource échoue en raison d’une ERROR_INTERNET_CONNECTION_RESET (la connexion avec le serveur a été réinitialisée) ou de ERROR_INTERNET_CANNOT_CONNECT (la tentative de connexion au serveur a échoué).
INTERNET_FLAG_HYPERLINK
Force un rechargement s’il n’y a pas eu d’heure d’expiration et qu’aucune heure LastModified n’a été retournée par le serveur lorsque vous déterminez 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 donné dans la demande. Les fonctions WinINet utilisent une vérification simple par rapport aux certificats en comparant les noms d’hôte correspondants 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 des 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é, les fonctions WinINet autorisent en toute transparence les redirections de HTTPS vers des 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é, les fonctions WinINet autorisent en toute transparence les redirections de HTTP vers les URL HTTPS.
INTERNET_FLAG_KEEP_CONNECTION
Utilise la sémantique keep-alive, le cas échéant, pour la connexion. Cet indicateur est requis pour Microsoft Network (MSN), NT LAN Manager (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 requêtes 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_PRAGMA_NOCACHE
Force la requête à résoudre par le serveur d’origine, même si une copie mise en cache existe sur le proxy.
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 la dernière fois qu’elle a été téléchargée. Toutes les ressources FTP sont rechargées.

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

INTERNET_FLAG_SECURE
Utilise la sémantique des transactions sécurisées. Cela se traduit par l’utilisation de secure Sockets Layer/Private Communications Technology (SSL/PCT) et n’est significative que dans les requêtes HTTP.

[in] dwContext

Pointeur vers une variable qui contient la valeur définie par l’application qui associe cette opération à toutes les données d’application.

Valeur de retour

Retourne un handle de requête HTTP en cas de réussite, ou null sinon. Pour récupérer des informations d’erreur étendues, appelez GetLastError.

Remarques

La fonction HttpOpenRequest crée un handle de requête HTTP et stocke les paramètres spécifiés dans ce handle. Un handle de requête HTTP contient une requête à envoyer à un serveur HTTP et contient tous les en-têtes RFC822/MIME/HTTP à envoyer dans le cadre de la requête.

Si un verbe autre que « GET » ou « POST » est spécifié, HttpOpenRequest définit automatiquement INTERNET_FLAG_NO_CACHE_WRITE et INTERNET_FLAG_RELOAD pour la requête.

Avec Microsoft Internet Explorer 5 et versions ultérieures, si lpszVerb a la valeur « HEAD », l’en-tête Content-Length est ignoré sur les réponses des serveurs HTTP/1.1.

Sur Windows 7, Windows Server 2008 R2 et versions ultérieures, le paramètre lpszVersion est remplacé par les paramètres Internet Explorer. Le EnableHttp1_1 est une valeur de Registre sous HKLM\Software\Microsoft\InternetExplorer\AdvacnedOptions\HTTP\GENABLE contrôlé par internet Options définies dans Internet Explorer pour le système. La valeur EnableHttp1_1 est définie par défaut sur 1. La fonction HttpOpenRequest met à niveau toute version HTTP inférieure à 1.1 vers HTTP version 1.1 si EnableHttp1_1 a la valeur 1.

Une fois l’application appelante terminée à l’aide du handle HINTERNET retourné par httpOpenRequest, il doit être fermé à l’aide de la fonction InternetCloseHandle.

Remarque Lorsqu’une requête est envoyée en mode asynchrone (le paramètre dwFlags de InternetOpen 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 requête ne sera pas appelée, toutefois, 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.

Remarque 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).
 

Note

L’en-tête wininet.h définit HttpOpenRequest 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. Le mélange 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.

Exigences

Exigence Valeur
client minimum pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
serveur minimum pris en charge Windows 2000 Server [applications de bureau uniquement]
plateforme cible Windows
d’en-tête wininet.h
bibliothèque Wininet.lib
DLL Wininet.dll

Voir aussi

sessions HTTP

fonctions WinINet