Requête HTTP
Résumé
- Nom interne :
HttpRequest - Catégorie : Communication
- Objectif : Exécuter une requête HTTP GET ou POST avec des paramètres, en-têtes, corps et délais configurables. Retourne le code de réponse HTTP et le corps de la réponse.
- Type de tâche : Normale
Compatibilité
-
Version AndroMate minimale :
1.1.0 -
Version AndroMate maximale :
1.1.0 -
Android minimum :
Android 13 (API 33) -
Android maximum testé :
Android 16 (API 36) -
Permissions requises :
INTERNETACCESS_NETWORK_STATE
Description détaillée
La tâche Requête HTTP exécute une requête HTTP GET ou POST vers l'url spécifiée. Les paramètres, en-têtes et le corps de la requête sont configurés individuellement. Les délais de connexion et de lecture sont contrôlés séparément. La journalisation de débogage peut être activée via httpDebug.
La tâche résout toutes les variables dynamiques dans url, headers, parameters et body avant d'exécuter la requête. En cas de succès, le code de réponse HTTP et le corps de la réponse sont stockés dans les variables de sortie depuis HttpRequestResult. Une IOException pendant l'exécution lève HTTP-ERROR-001.
Paramètres d'entrée
| Paramètre | Type | Obligatoire | Valeurs possibles | Compatibilité Android | Compatibilité AndroMate | Défaut |
|---|---|---|---|---|---|---|
url |
Chaîne | Oui | URL HTTP/HTTPS valide — supporte les références $variable |
Android 13 (API 33) → Android 16 (API 36) | 1.1.0 → 1.1.0 | "" |
method |
Chaîne | Non | "GET", "POST" |
Android 13 (API 33) → Android 16 (API 36) | 1.1.0 → 1.1.0 | "GET" |
connectionTimeout |
Long | Non | Délai de connexion en millisecondes | Android 13 (API 33) → Android 16 (API 36) | 1.1.0 → 1.1.0 | 5000 |
readTimeout |
Long | Non | Délai de lecture en millisecondes | Android 13 (API 33) → Android 16 (API 36) | 1.1.0 → 1.1.0 | 5000 |
httpDebug |
Booléen | Non | true / false — activer la journalisation de débogage |
Android 13 (API 33) → Android 16 (API 36) | 1.1.0 → 1.1.0 | false |
parameters |
JSONArray | Non | Liste d'objets {"param_name": "...", "value": "..."} |
Android 13 (API 33) → Android 16 (API 36) | 1.1.0 → 1.1.0 | [] |
headers |
JSONArray | Non | Liste d'objets {"header_name": "...", "value": "..."} |
Android 13 (API 33) → Android 16 (API 36) | 1.1.0 → 1.1.0 | [] |
body |
Chaîne | Non | Corps brut de la requête | Android 13 (API 33) → Android 16 (API 36) | 1.1.0 → 1.1.0 | "" |
Paramètres de sortie
| Champ | Type | Condition de déclenchement | Compatibilité Android | Compatibilité AndroMate | Défaut |
|---|---|---|---|---|---|
responseCode_output |
Chaîne (Entier) | Toujours en cas de succès — code de statut HTTP | Android 13 (API 33) → Android 16 (API 36) | 1.1.0 → 1.1.0 | <ANDROMATE_NULL_VALUE> |
responseBody_output |
Chaîne | Toujours en cas de succès — corps de la réponse | Android 13 (API 33) → Android 16 (API 36) | 1.1.0 → 1.1.0 | <ANDROMATE_NULL_VALUE> |
Remarque : Les variables de sortie ne sont écrites que si la variable workflow correspondante existe déjà dans le contexte d'exécution (déclarée dans la tâche Start).
Exceptions
| Code | Nom de l'exception | Description |
|---|---|---|
HTTP-ERROR-001 |
Erreur I/O HTTP | Une IOException s'est produite pendant l'exécution HTTP (depuis AndromateExceptionTypes.HTTP_REQUEST_IO_EXCEPTION_ERROR). |
Diagramme d'exécution
flowchart TD
Start([▶ HttpRequest]) --> ResolveParams[🔄 Résoudre url, headers,\nparameters, body]
ResolveParams --> CreateClient[🔗 Créer client HTTP\nmethod, connectionTimeout, readTimeout, httpDebug]
CreateClient --> Execute[📡 Exécuter requête HTTP\nGET ou POST]
Execute -->|IOException| E1[❌ HTTP-ERROR-001\nErreur I/O HTTP]
Execute -->|Succès| GetResponse[📥 Récupérer le corps de réponse\net le code de statut HTTP]
GetResponse --> StoreResult[💾 Stocker HttpRequestResult\nresponseCode_output\nresponseBody_output]
StoreResult --> LogReport[📋 Journaliser le rapport\nReportSection]
LogReport --> Success([✅ HttpRequestResult])
E1 --> Error([❌ Exception])
style Start fill:#e3f2fd
style Success fill:#c8e6c9
style Error fill:#ffcdd2
style E1 fill:#ffcdd2
style ResolveParams fill:#fff9c4
style CreateClient fill:#f3e5f5
style Execute fill:#f3e5f5
style GetResponse fill:#fff9c4
style StoreResult fill:#c8e6c9
Fonctionnement :
- Résoudre les paramètres : résout les variables dynamiques dans
url,headers,parametersetbody - Créer le client HTTP : initialise le client HTTP avec
method,connectionTimeout,readTimeoutethttpDebug - Exécuter la requête : envoie la requête HTTP GET ou POST
- En cas d'IOException : lève
HTTP-ERROR-001 - Récupérer la réponse : obtient le corps et le code de statut HTTP
- Stocker le résultat : sauvegarde les résultats dans
HttpRequestResult—responseCode_outputetresponseBody_output - Journaliser le rapport : enregistre le rapport d'exécution
- Résultat : retourne
HttpRequestResult
Exemples de code
Exemple 1 — Requête GET simple
{
"HttpRequest": [
{
"id": "1",
"title": "GET statut appareil",
"url": "https://api.example.com/status",
"method": "GET",
"responseCode_output": "$http_status",
"responseBody_output": "$http_body"
}
]
}
Exemple 2 — Requête POST avec corps JSON
{
"HttpRequest": [
{
"id": "2",
"title": "POST rapport appareil",
"url": "https://api.example.com/report",
"method": "POST",
"connectionTimeout": 5000,
"readTimeout": 10000,
"body": "{ \"deviceId\": \"$DEVICE_ID\", \"status\": \"ok\" }",
"headers": [
{ "header_name": "Content-Type", "value": "application/json" },
{ "header_name": "Authorization", "value": "Bearer $TOKEN" }
],
"responseCode_output": "$http_code",
"responseBody_output": "$http_reponse"
}
]
}
Exemple 3 — GET avec paramètres de requête
{
"HttpRequest": [
{
"id": "3",
"title": "GET avec paramètres",
"url": "https://api.example.com/monitoring",
"method": "GET",
"parameters": [
{ "param_name": "deviceId", "value": "$DEVICE_ID" },
{ "param_name": "session", "value": "$SESSION_ID" }
],
"httpDebug": true,
"responseCode_output": "$code_statut",
"responseBody_output": "$corps_reponse"
}
]
}
Exemple 4 — POST avec délais personnalisés
{
"HttpRequest": [
{
"id": "4",
"title": "POST avec délais étendus",
"url": "$api_endpoint",
"method": "POST",
"connectionTimeout": 10000,
"readTimeout": 30000,
"body": "$payload_requete",
"headers": [
{ "header_name": "X-API-Key", "value": "$API_KEY" }
],
"responseCode_output": "$code_resp",
"responseBody_output": "$corps_resp"
}
]
}
Détails des paramètres d'entrée
1. url — URL cible
L'URL HTTP ou HTTPS du point de terminaison à appeler. Supporte les références $variable_workflow — résolues à l'exécution.
- Défaut :
"" - Supporte les variables : Oui
2. method — Méthode HTTP
La méthode HTTP utilisée pour la requête.
| Valeur | Description |
|---|---|
"GET" |
Récupérer des données depuis le serveur — paramètres ajoutés à l'URL |
"POST" |
Envoyer des données au serveur — corps ou paramètres dans le corps de la requête |
- Défaut :
"GET"
3. connectionTimeout — Délai de connexion
Temps maximum en millisecondes pour établir la connexion HTTP.
- Type : Long
- Défaut :
5000(5 secondes)
4. readTimeout — Délai de lecture
Temps maximum en millisecondes pour attendre la réponse du serveur après l'établissement de la connexion.
- Type : Long
- Défaut :
5000(5 secondes)
5. httpDebug — Journalisation de débogage
Lorsque true, active la journalisation HTTP verbeuse dans le rapport de la tâche.
- Défaut :
false
6. parameters — Paramètres de requête/corps
Un tableau JSON d'objets paramètres, chacun avec les champs param_name et value. Les paramètres sont ajoutés à l'URL pour les requêtes GET ou inclus dans le corps pour les requêtes POST.
"parameters": [
{ "param_name": "deviceId", "value": "$DEVICE_ID" },
{ "param_name": "type", "value": "diagnostic" }
]
- Défaut :
[]
7. headers — En-têtes HTTP
Un tableau JSON d'objets en-têtes, chacun avec les champs header_name et value. Ajoutés à chaque requête.
"headers": [
{ "header_name": "Authorization", "value": "Bearer $TOKEN" },
{ "header_name": "Content-Type", "value": "application/json" }
]
- Défaut :
[]
8. body — Corps brut de la requête
Une chaîne de corps brut envoyée avec la requête. Utilisée principalement avec POST. Supporte les références $variable_workflow.
- Défaut :
""
Détails des paramètres de sortie
responseCode_output — Code de réponse HTTP
Stocke le code de statut HTTP retourné par le serveur sous forme de chaîne (depuis HttpRequestResult).
- Exemples :
"200"(OK),"201"(Créé),"400"(Mauvaise requête),"500"(Erreur serveur) - Écrit lors de tout échange HTTP réussi (quelle que soit la valeur du statut HTTP)
responseBody_output — Corps de la réponse HTTP
Stocke la chaîne brute du corps de la réponse retournée par le serveur (depuis HttpRequestResult).
- Écrit lors de tout échange HTTP réussi
- Peut être vide si le serveur ne retourne aucun corps
Exemple JSON complet
{
"HttpRequest": [
{
"id": "1",
"title": "Requête HTTP",
"url": "https://api.example.com/monitoring",
"method": "POST",
"connectionTimeout": 5000,
"readTimeout": 10000,
"httpDebug": true,
"body": "{ \"deviceId\": \"$DEVICE_ID\" }",
"parameters": [
{ "param_name": "deviceId", "value": "$DEVICE_ID" }
],
"headers": [
{ "header_name": "Authorization", "value": "Bearer $TOKEN" }
],
"responseCode_output": "$HTTP_STATUS",
"responseBody_output": "$HTTP_RESULT"
}
]
}