Aller au contenu principal

Lancer une requête PUT (http.put)

Déclaration

codeHTTP, texteJSONEnTêtes, corps = http.put(URL [, secondesExpiration, enTêtes, donnéesCorps, URLSansEscape ])

Déclaration (paramètres nommés)

Pris en charge depuis 20250625 ; la progression est disponible depuis 20260402.

codeHTTP, texteJSONEnTêtes, corps = http.put{
url = URL;
timeout = secondesExpiration;
headers = enTêtes;
params = paramètresQuery;
-- Les paramètres de corps suivants ne peuvent pas coexister ; priorité multipart > data > json > upload_file
multipart = formulaireMultipart;
data = donnéesCorps;
json = corpsJSON;
upload_file = cheminFichierÀTéléverser;
download_file = cheminDeSauvegarde;
progress = rappelProgression;
progress_interval_ms = intervalleProgressionMs;
}

Paramètres

  • URL — Texte, URL à requêter ; échappée par défaut
  • secondesExpiration — Nombre réel facultatif, délai en secondes ; par défaut 10
  • enTêtes — Table facultative d’en-têtes ; par défaut {}
  • paramètresQuery — Table facultative de paramètres Query ; par défaut {}
  • donnéesCorps — Chaîne facultative envoyée dans le corps ; chaîne vide par défaut. Depuis 20250625, une table est encodée en application/x-www-form-urlencoded
  • formulaireMultipart — Table facultative de données multipart ; par défaut {}
  • corpsJSON — Table facultative encodée en application/json
  • cheminFichierÀTéléverser — Texte facultatif, données du fichier envoyées directement comme corps
  • cheminDeSauvegarde — Texte facultatif ; en cas de succès, le corps renvoie le chemin du fichier
  • rappelProgression — Fonction facultative, disponible depuis 20260402, appelée lorsque la progression change
  • intervalleProgressionMs — Entier facultatif, intervalle en millisecondes ; disponible depuis 20260402
  • URLSansEscape — Booléen facultatif ; true envoie l’URL sans escape, false par défaut. Pour personnaliser l’escape, consultez lcurl, easy:escape et easy:unescape.

Valeur de retour

  • codeHTTP — Entier, code HTTP ; -1 en cas d’expiration
  • texteJSONEnTêtes — Texte ou nil, en-têtes JSON ; nil en cas d’expiration
  • corps — Chaîne ou nil, contenu renvoyé ; chemin si sauvegardé dans un fichier ; nil en cas d’expiration

Description

Utilise la méthode PUT de HTTP/1.1 pour envoyer des données ; son usage est identique à POST. Cette fonction peut céder l’exécution ; avant son retour, d’autres threads peuvent s’exécuter.

La fonction de rappel reçoit une structure info :

{
count_of_bytes_sent = octetsEnvoyés;
count_of_bytes_expected_to_send = octetsÀEnvoyer;
count_of_bytes_received = octetsReçus;
count_of_bytes_expected_to_receive = octetsÀRecevoir;
}

Exemple

local code, res_headers, body = http.put("https://httpbin.org/put?hello=world&你好=世界", 15, {
["User-Agent"] = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0)", -- Requête simulant IE8
["Cookie"] = "a=1; b=2; c=3"; -- Envoyer également le cookie
}, "需要发送过去的数据")
if code == 200 then -- Code HTTP_OK
sys.alert(body)
end

Remarque : le code utilise sys.alert.

Exemple (paramètres nommés)

local code, res_headers, body = http.put{
url = "https://httpbin.org/put";
timeout = 15;
headers = {
["User-Agent"] = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0)"; -- Requête simulant IE8
["Cookie"] = "a=1; b=2; c=3"; -- Envoyer également le cookie
};
params = {
["hello"] = "world";
["你好"] = "世界";
};
data = "需要发送过去的数据";
}
if code == 200 then -- Code HTTP_OK
sys.alert(body)
end

Remarque : le code utilise sys.alert.