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 à une session HTTP retournée par InternetConnect.

[in] lpszVerb

Pointeur vers une chaîne terminée par null qui contient le verbe HTTP à utiliser dans la requête. Si ce paramètre a la valeur NULL, la fonction utilise GET comme verbe HTTP.

[in] lpszObjectName

Pointeur vers une chaîne terminée par null 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 terminée par null 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 a la valeur 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 terminée par null qui spécifie l’URL du document à partir duquel l’URL de la requête (lpszObjectName) a été obtenue. Si ce paramètre a la valeur NULL, aucun référent n’est spécifié.

[in] lplpszAcceptTypes

Pointeur vers un tableau de chaînes avec fin null qui indique les types de médias 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 a la valeur NULL, aucun type n’est accepté par le client. Les serveurs interprètent généralement l’absence de types d’acceptation pour indiquer que le client accepte uniquement les documents de type « text/* » (c’est-à-dire, uniquement les documents texte, pas d’images 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’un ERROR_INTERNET_CONNECTION_RESET (la connexion avec le serveur a été réinitialisée) ou d’ERROR_INTERNET_CANNOT_CONNECT (échec de la tentative de connexion au serveur).
INTERNET_FLAG_HYPERLINK
Force un rechargement s’il n’y a pas d’heure d’expiration et aucune heure LastModified renvoyée par le serveur lors de la détermination de la possibilité de 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 un case activée simple par rapport aux certificats en comparant les noms d’hôtes et les règles 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é, les fonctions WinINet autorisent 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é, 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, si disponible, 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 cookies aux demandes et n’ajoute pas automatiquement les cookies retournés à la base de données des cookies.
INTERNET_FLAG_NO_UI
Désactive la boîte de dialogue cookie.
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_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 : Les 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 significatif 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 retournée

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

Remarques

La fonction HttpOpenRequest crée un nouveau handle de requête HTTP et stocke les paramètres spécifiés dans ce handle. Un handle de requête HTTP contient une demande à 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ée par les options Internet définies dans Internet Explorer pour le système. La valeur EnableHttp1_1 par défaut est 1. La fonction HttpOpenRequest met à niveau toute version HTTP inférieure à 1.1 vers HTTP version 1.1 si EnableHttp1_1 est défini sur 1.

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

Note Lorsqu’une requête est envoyée en mode asynchrone (le paramètre dwFlags dwFlags d’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 demande 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 HttpOpenRequest comme un 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.

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

HTTP Sessions

Fonctions WinINet