Fonction HttpSendRequestA (wininet.h)

Envoie la requête spécifiée au serveur HTTP, ce qui permet aux appelants d’envoyer des données supplémentaires au-delà de ce qui est normalement passé à HttpSendRequestEx.

Syntaxe

BOOL HttpSendRequestA(
  [in] HINTERNET hRequest,
  [in] LPCSTR    lpszHeaders,
  [in] DWORD     dwHeadersLength,
  [in] LPVOID    lpOptional,
  [in] DWORD     dwOptionalLength
);

Paramètres

[in] hRequest

Handle retourné par un appel à la fonction HttpOpenRequest .

[in] lpszHeaders

Pointeur vers une chaîne terminée par null qui contient les en-têtes supplémentaires à ajouter à la demande. Ce paramètre peut être NULL s’il n’y a pas d’en-têtes supplémentaires à ajouter.

[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, la fonction suppose que lpszHeaders est terminé à zéro (ASCIIZ) et que la longueur est calculée. Pour plus d’informations, consultez Remarques.

[in] lpOptional

Pointeur vers une mémoire tampon contenant les données facultatives à envoyer immédiatement après les en-têtes de requête. Ce paramètre est généralement utilisé pour les opérations POST et PUT. Les données facultatives peuvent être la ressource ou les informations publiées sur le serveur. Ce paramètre peut être NULL s’il n’y a pas de données facultatives à envoyer.

[in] dwOptionalLength

Taille des données facultatives, en octets. Ce paramètre peut être égal à zéro s’il n’y a pas de données facultatives à envoyer.

Valeur retournée

Retourne TRUE en cas de réussite, ou FALSE dans le cas contraire. Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError.

Remarques

HttpSendRequest envoie la requête spécifiée au serveur HTTP et permet au client de spécifier des en-têtes supplémentaires à envoyer avec la requête.

La fonction permet également au client de spécifier les données facultatives à envoyer au serveur HTTP immédiatement après les en-têtes de requête. Cette fonctionnalité est généralement utilisée pour les opérations d'« écriture », telles que PUT et POST.

Une fois la demande envoyée, le code status et les en-têtes de réponse du serveur HTTP sont lus. Ces en-têtes sont conservés en interne et sont disponibles pour les applications clientes via la fonction HttpQueryInfo .

Une application peut utiliser le même handle de requête HTTP dans plusieurs appels à HttpSendRequest, mais l’application doit lire toutes les données retournées par l’appel précédent avant d’appeler à nouveau la fonction.

En mode hors connexion, HttpSendRequest retourne ERROR_FILE_NOT_FOUND si la ressource est introuvable dans le cache Internet.

Il existe deux versions de HttpSendRequest : HttpSendRequestA (utilisé avec les builds ANSI) et HttpSendRequestW (utilisé avec les builds Unicode). Si dwHeadersLength a la valeur -1L et lpszHeaders n’a pas la valeur NULL, les événements suivants se produisent : si HttpSendRequestA est appelé, la fonction suppose que lpszHeaders est terminé sans fin (ASCIIZ) et que la longueur est calculée. Si HttpSendRequestW est appelé, la fonction échoue avec ERROR_INVALID_PARAMETER.

Note La fonction HttpSendRequestA représente les en-têtes sous forme de caractères ISO-8859-1 et non de caractères ANSI. La fonction HttpSendRequestW représente les en-têtes sous forme de caractères ISO-8859-1 convertis en caractères UTF-16LE. Par conséquent, il n’est jamais sûr d’utiliser la fonction HttpSendRequestW lorsque les en-têtes à ajouter peuvent contenir des caractères non ASCII. Au lieu de cela, une application peut utiliser les fonctions MultiByteToWideChar et WideCharToMultiByte avec un paramètre Codepage défini sur 28591 pour mapper entre les caractères ANSI et les caractères UTF-16LE.
 
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 HttpSendRequest 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

HTTP Sessions

Fonctions WinINet