Module http
Le module http
permet d'envoyer des requêtes HTTP avec des configurations personnalisées, telles que la méthode, les en-têtes, le corps, et l'URL.
Pour l'importer il faut utiliser la déclaration suivante :
Configuration
Le module http
nécessite une configuration spécifique pour fonctionner. Cette configuration est définie dans le fichier de configuration de l'agent.
Pour la configuration voici un exemple de toutes les options possibles :
iot:
modules:
http: # module http
- name: http1 # nom du module
url: "http://example.com" # url de la requête
method: "GET" # méthode de la requête
headers: # en-têtes de la requête
Content-Type: "application/json"
body: "" # corps de la requête
Vous pouvez seulement défnir le name et utiliser la fonction Lua http.requestCustom(url, method[, body[, headers]])
pour envoyer une requête HTTP personnalisée.
Détails de la configuration
- name : Nom du module. Il doit être unique et ne pas contenir d'espaces ou de caractères spéciaux.
- url : URL de la requête. Il doit être au format
http://example.com
. - method : Méthode de la requête. Il peut s'agir de
GET
,POST
,PUT
,DELETE
, etc. - headers : En-têtes de la requête. Il s'agit d'un tableau Lua contenant les en-têtes HTTP sous forme de paires clé-valeur (ex.
{["Content-Type"] = "application/json"}
). - body : Corps de la requête. Il s'agit d'une chaîne de caractères qui sera envoyée dans le corps de la requête HTTP. Par défaut, c'est une chaîne vide.
Fonctions Lua
http.request()
Envoie une requête HTTP avec la configuration prédéfinie dans l'instance HttpSocket
.
-
Paramètres : Aucun. Cette fonction utilise la configuration définie dans l'objet
HttpSocket
pour effectuer la requête. -
Retour :
- Le corps de la réponse sous forme de chaîne de caractères, ou un message d'erreur en cas d'échec.
local http = require("http")
local response, httpstatus, headers = http.request()
if not httpstatus then
print("Erreur lors de la requête HTTP : " .. err)
else
print("Réponse : " .. response)
print("Statut HTTP : " .. httpstatus)
print("En-têtes :")
for k, v in pairs(headers) do
print(k .. ": " .. v)
end
end
http.requestCustom(url, method[, body[, headers]])
Envoie une requête HTTP personnalisée avec les paramètres spécifiés.
- Paramètres :
url
(string) : L'URL à laquelle la requête doit être envoyée.method
(string) : La méthode HTTP à utiliser (GET
,POST
, etc.).body
(string, optionnel) : Le corps de la requête. Par défaut, c'est une chaîne vide.-
headers
(table, optionnel) : Un tableau Lua contenant les en-têtes HTTP sous forme de paires clé-valeur (ex.{["Content-Type"] = "application/json"}
). -
Retour :
- Le corps de la réponse sous forme de chaîne de caractères, ou un message d'erreur en cas d'échec.
local http = require("http")
local url = "http://example.com"
local method = "POST"
local body = '{"key": "value"}'
local headers = {["Content-Type"] = "application/json"}
local response, httpstatus, headers = http.requestCustom(url, method, body, headers)
if not httpstatus then
print("Erreur lors de la requête HTTP personnalisée : " .. response)
else
print("Réponse : " .. response)
print("Statut HTTP : " .. httpstatus)
print("En-têtes :")
for k, v in pairs(headers) do
print(k .. ": " .. v)
end
end
Champs Lua associés
http.name
: Retourne le nom de l'instancehttp
.http.type
: Retourne le type du module (ici,http
).