Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
La fonction WinHttpOpenRequest crée un handle de requête HTTP.
Syntaxe
WINHTTPAPI HINTERNET WinHttpOpenRequest(
[in] HINTERNET hConnect,
[in] LPCWSTR pwszVerb,
[in] LPCWSTR pwszObjectName,
[in] LPCWSTR pwszVersion,
[in] LPCWSTR pwszReferrer,
[in] LPCWSTR *ppwszAcceptTypes,
[in] DWORD dwFlags
);
Paramètres
[in] hConnect
Handle de connexion HINTERNET à une session HTTP retournée par WinHttpConnect.
[in] pwszVerb
Pointeur vers une chaîne qui contient le verbe HTTP à utiliser dans la requête. Si ce paramètre est NULL, la fonction utilise GET comme verbe HTTP. Note Cette chaîne doit être en majuscules. De nombreux serveurs traitent les verbes HTTP comme respectant la casse, et les requêtes IETF (Internet Engineering Task Force) pour les commentaires (RFC) orthographiquent ces verbes à l’aide de caractères majuscules uniquement.
[in] pwszObjectName
Pointeur vers une chaîne terminée par null qui contient le nom de la ressource 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] pwszVersion
Pointeur vers une chaîne qui contient la version HTTP. Si ce paramètre est NULL, la fonction utilise HTTP/1.1.
[in] pwszReferrer
Pointeur vers une chaîne qui spécifie l’URL du document à partir de laquelle l’URL de la requête pwszObjectName a été obtenue. Si ce paramètre est défini sur WINHTTP_NO_REFERER, aucun document de référence n’est spécifié.
[in] ppwszAcceptTypes
Pointeur vers un tableau null de pointeurs de chaîne qui spécifie les types multimédias acceptés par le client. Si ce paramètre est défini sur WINHTTP_DEFAULT_ACCEPT_TYPES, aucun type n’est accepté par le client. En règle générale, les serveurs gèrent un manque de types acceptés comme indication que le client accepte uniquement les documents de type « text/* » ; autrement dit, seuls les documents texte , aucune image ou d’autres fichiers binaires. Pour obtenir la liste des types de supports valides, consultez Les types de médias définis par IANA à l’adresse http://www.iana.org/assignments/media-types/.
[in] dwFlags
Valeur entière longue non signée qui contient les valeurs d’indicateur Internet. Il peut s’agir d’une ou plusieurs des valeurs suivantes :
Valeur de retour
Retourne un handle de requête HTTP valide en cas de réussite, ou NULL si ce n’est pas le cas. Pour obtenir des informations d’erreur étendues, appelez GetLastError. Parmi les codes d’erreur retournés, voici ce qui suit.
| Code d’erreur | Descriptif |
|---|---|
|
Le type de handle fourni est incorrect pour cette opération. |
|
Une erreur interne s’est produite. |
|
L’URL n’est pas valide. |
|
L’opération a été annulée, généralement parce que le handle sur lequel la demande a été fermée avant la fin de l’opération. |
|
L’URL a spécifié un schéma autre que « http : » ou « https : ». |
|
La mémoire n’a pas été suffisante pour terminer l’opération demandée. (Code d’erreur Windows) |
Remarques
La valeur de retour indique la réussite ou l’échec. Pour obtenir des informations d’erreur étendues, appelez GetLastError.
La fonction WinHttpOpenRequest 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 pwszVerb a la valeur « HEAD », l’en-tête Content-Length est ignoré.
Si une fonction de rappel d’état a été installée avec WinHttpSetStatusCallback, une notification WINHTTP_CALLBACK_STATUS_HANDLE_CREATED indique que WinHttpOpenRequest a créé un handle de requête.
Une fois l’application appelante terminée à l’aide du handle HINTERNET retourné par WinHttpOpenRequest, elle doit être fermée à l’aide de la fonction WinHttpCloseHandle .
Examples
Cet exemple montre comment obtenir un handle HINTERNET , ouvrir une session HTTP, créer un en-tête de requête et envoyer cet en-tête au serveur.
BOOL bResults = FALSE;
HINTERNET hSession = NULL,
hConnect = NULL,
hRequest = NULL;
// Use WinHttpOpen to obtain a session handle.
hSession = WinHttpOpen( L"A WinHTTP Example Program/1.0",
WINHTTP_ACCESS_TYPE_DEFAULT_PROXY,
WINHTTP_NO_PROXY_NAME,
WINHTTP_NO_PROXY_BYPASS, 0);
// Specify an HTTP server.
if (hSession)
hConnect = WinHttpConnect( hSession, L"www.wingtiptoys.com",
INTERNET_DEFAULT_HTTP_PORT, 0);
// Create an HTTP Request handle.
if (hConnect)
hRequest = WinHttpOpenRequest( hConnect, L"PUT",
L"/writetst.txt",
NULL, WINHTTP_NO_REFERER,
WINHTTP_DEFAULT_ACCEPT_TYPES,
0);
// Send a Request.
if (hRequest)
bResults = WinHttpSendRequest( hRequest,
WINHTTP_NO_ADDITIONAL_HEADERS,
0, WINHTTP_NO_REQUEST_DATA, 0,
0, 0);
// PLACE ADDITIONAL CODE HERE.
// Report any errors.
if (!bResults)
printf( "Error %d has occurred.\n", GetLastError());
// Close any open handles.
if (hRequest) WinHttpCloseHandle(hRequest);
if (hConnect) WinHttpCloseHandle(hConnect);
if (hSession) WinHttpCloseHandle(hSession);
Spécifications
| Requirement | Valeur |
|---|---|
| Client minimum requis | Windows XP, Windows 2000 Professionnel avec SP3 [applications de bureau uniquement] |
| serveur minimum pris en charge | Windows Server 2003, Windows 2000 Server avec SP3 [applications de bureau uniquement] |
| plateforme cible | Fenêtres |
| Header | winhttp.h |
| Library | Winhttp.lib |
| DLL | Winhttp.dll |
| Composant redistribuable | WinHTTP 5.0 et Internet Explorer 5.01 ou version ultérieure sur Windows XP et Windows 2000. |