Partager via


HttpSendRequestA, fonction (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 null-terminated qui contient les en-têtes supplémentaires à ajouter à la requête. 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, dans TCHARs. Si ce paramètre est -1L et lpszHeaders n’est pas NULL, la fonction part du principe que lpszHeaders est terminée par zéro (ASCIIZ) et que la longueur est calculée. Pour plus d’informations, consultez les remarques.

[in] lpOptional

Pointeur vers une mémoire tampon contenant toutes 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’existe aucune donnée facultative à envoyer.

[in] dwOptionalLength

Taille des données facultatives, en octets. Ce paramètre peut être égal à zéro s’il n’existe aucune donnée facultative à envoyer.

Valeur de retour

Retourne TRUE en cas de réussite ou FALSE sinon. Pour obtenir des informations d’erreur étendues, 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 des 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 requête envoyée, le code d’état et les en-têtes de réponse du serveur HTTP sont lus. Ces en-têtes sont géré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 pour httpSendRequest, mais l’application doit lire toutes les données retournées à partir de 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 est -1L et que lpszHeaders n’est pas NULL, ce qui suit se produit : Si HttpSendRequestA est appelé, la fonction part du principe que lpszHeaders est terminée par zéro (ASCIIZ) et que la longueur est calculée. Si httpSendRequestW est appelée, la fonction échoue avec ERROR_INVALID_PARAMETER.

Remarque La fonction HttpSendRequestA représente les en-têtes en tant que caractères ISO-8859-1 et non ansI. La fonction HttpSendRequestW représente les en-têtes en tant que 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 les caractères ANSI et 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.
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 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. 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