HTTPRequestMemory()

Syntaxe

Resultat = HTTPRequestMemory(Type, URL$ [, *Data, TailleData [, Options [, EnTetes()]]])
Description
Envoie une requête HTTP avec des données binaires optionnelles.

Arguments

Type Le type de la requête. Peut être l'une des valeurs suivantes:
  #PB_HTTP_Get   : GET request (le paramètre '*Data' sera ignoré)
  #PB_HTTP_Post  : POST request (le paramètre '*Data' sera envoyé si spécifié)
  #PB_HTTP_Put   : PUT request (le paramètre '*Data' sera envoyé si spécifié)
  #PB_HTTP_Patch : PATCH request (le paramètre '*Data' sera envoyé si spécifié)
  #PB_HTTP_Delete: DELETE request (le paramètre '*Data' sera envoyé si spécifié)
URL$ L'URL à interroger.
*Data (optionnel) Adresse mémoire du tampon (buffer) contenant les données à envoyer.
TailleData (optionnel) Taille en octets du tampon.
Options (optionnel) Ce peut être une combinaison des valeurs suivantes:
  #PB_HTTP_Asynchronous: Téléchargement de manière asynchrone.
  #PB_HTTP_NoRedirect  : Ne pas suivre les redirections automatiques.
  #PB_Http_NoSSLCheck  : Ne pas vérifier si le certificat SSL est valide (peut être utile à des fins de test).
  #PB_HTTP_HeadersOnly : Ne télécharge que les en-têtes.
  #PB_HTTP_WeakSSL     : Support des vieux serveurs.
  #PB_HTTP_Debug       : Affiche les informations de débogage.

EnTetes() (optionnel) Une map d'en-têtes supplémentaires, sous forme de chaînes de caractères.
Exemple:
  NewMap Header$()
  Header$("Content-Type") = "octectstream"
  Header$("User-Agent") = "Firefox 54.0"
  Header$("NoParamHeader") = ""  

Valeur de retour

Renvoie l'identifiant de la requête HTTP si l'appel a été initialisé avec succès, zéro sinon .

Remarques

Sous Linux, vous devez installer 'libcurl' pour que cette commande fonctionne (la plupart des distributions Linux l'ont déjà).

Si des données binaires doivent être envoyées, vous pouvez utiliser HTTPRequestMemory()().

Cette commande est conçue pour gérer facilement REST comme une API Web.

HTTPInfo() peut être utilisé pour obtenir des informations sur la requête.
Si #PB_HTTP_Asynchronous a été spécifié, HTTPProgress() et AbortHTTP() peuvent être utilisés.
HTTPMemory() peut être utilisé pour obtenir le résultat sous forme de tampon brut (le tampon brut doit être libéré avec FreeMemory()).

FinishHTTP() doit toujours être appelé pour terminer une demande HTTP initialisée avec succès, même si l'appel était synchrone.

Exemple

  HttpRequest = HTTPRequestMemory(#PB_HTTP_Get, "https://www.google.com")
  If HttpRequest
    Debug "Status: " + HTTPInfo(HTTPRequest, #PB_HTTP_StatusCode)
    Debug "Réponse: " + HTTPInfo(HTTPRequest, #PB_HTTP_Response)
    
    FinishHTTP(HTTPRequest)
  Else
    Debug "La requête a échoué"
  EndIf

Voir aussi

HTTPRequest(), URLEncoder(), AbortHTTP()

OS Supportés

Tous

<- HTTPRequest() - Http Index - HTTPTimeout() ->