Aller au contenu

Composer et rejouer (Composeur)

La capture ne consiste pas seulement à « regarder ». Le composeur de requêtes de Trace Eagle (Composeur) réunit en un seul endroit « la vraie requête capturée » et « la construction et le débogage manuels » : n’importe quelle requête capturée peut être renvoyée telle quelle, ou renvoyée après ajustement des paramètres ; vous pouvez aussi construire une requête de zéro et l’envoyer. Fini les allers-retours entre un outil de capture et un outil de débogage d’API distinct.


  • Renvoyer / éditer et rejouer : faites un clic droit dans la liste du trafic, ou cliquez sur « Éditer et renvoyer » dans le panneau de détail, pour charger cette requête capturée dans le composeur telle quelle. L’adresse est rétablie à partir du protocole / hôte / port au moment de la capture, les en-têtes de connexion non pertinents sont supprimés, et le corps ainsi que son type sont détectés à partir du contenu, le tout automatiquement. Ajustez quelques paramètres et renvoyez.
  • Construire de zéro : assemblez une nouvelle requête à la main, directement dans le composeur.

Les deux points d’entrée utilisent le même canal d’envoi, et les résultats sont enregistrés dans un onglet de session Composeur distinct (conservant l’historique complet), où, comme une requête capturée, ils peuvent être consultés, réédités et comparés.


  • Ligne de requête : méthode (GET / POST / PUT / DELETE / PATCH / HEAD / OPTIONS) + URL.
  • Tableau de paramètres : les paramètres de requête sont gérés ligne par ligne dans un tableau, tenus à l’écart de l’URL et assemblés seulement au moment de l’envoi, ce qui signifie que les valeurs dynamiques qu’ils contiennent ne sont pas cassées par un encodage prématuré.
  • Tableau d’en-têtes : ajoutez, supprimez ou éditez n’importe quel en-tête ligne par ligne.
  • Assistant d’authentification : Aucun / Bearer Token / Basic (nom d’utilisateur + mot de passe, base64 automatiquement) ; ne prend effet que lorsque vous n’avez pas écrit vous-même d’en-tête Authorization.
  • Corps : aucun / JSON / form (form-urlencoded) / texte brut ; choisir JSON ou form ajoute automatiquement le Content-Type correspondant.

3. Valeurs dynamiques : gérer les API privées signées / chiffrées

Section intitulée « 3. Valeurs dynamiques : gérer les API privées signées / chiffrées »

N’importe quel champ peut contenir des valeurs dynamiques ${...}, évaluées par le moteur avant l’envoi. C’est une bouée de sauvetage pour déboguer les API privées qui transportent une signature / un horodatage / un nonce :

Valeur dynamique Usage
${uuid} / ${randomUUID} UUID aléatoire
${timestamp} Horodatage Unix en secondes
${timestampMs} / ${now} Horodatage Unix en millisecondes
${random} Hexadécimal aléatoire de 16 chiffres
${randomInt:min,max} Entier aléatoire dans une plage
${base64:} / ${base64url:} / ${base64decode:} Encodage / décodage Base64
${md5:} / ${sha1:} / ${sha256:} Hachage
${hmacSha256:key,msg} / ${hmacSha256Base64:key,msg} / ${hmacSha1:key,msg} Signature HMAC
${urlEncode:} / ${upper:} / ${lower:} Encodage URL / conversion de casse
  • Imbrication prise en charge : par exemple ${hmacSha256:${secret},${body}}, résoudre d’abord la variable, puis calculer la signature.
  • Tout ce qui ne peut pas être résolu est conservé tel quel, si bien que vous repérez d’un coup d’œil quelle variable n’a pas été évaluée, là où les outils ordinaires génèrent souvent une erreur ou envoient une valeur vide lorsqu’ils rencontrent une variable non définie.

Composeur : méthode + URL, avec des sections paramètres / en-têtes / auth / corps ; les champs peuvent contenir des valeurs dynamiques ${...} (par exemple le calcul d’une signature à la volée avec ${hmacSha256:...}), aux côtés des collections et des environnements


  • Variables d’environnement : extrayez ${name} dans des variables d’environnement, et basculez entre plusieurs environnements (comme « dev / test / prod ») en un clic ; les variables peuvent se référencer mutuellement et se déployer en chaîne.
  • Collections : regroupez les requêtes fréquemment utilisées dans des dossiers nommés, enregistrez la requête en cours à tout moment, et rechargez-la pour la réutiliser quand bon vous semble.
  • Sauvegarde automatique de l’espace de travail : collections + environnements sont automatiquement enregistrés sous forme de fichier en texte clair, gérable en versions, qui peut être comparé et relu, ce qui facilite le partage au sein d’une équipe et le suivi de l’historique.

  • Import cURL : collez une commande cURL pour l’analyser en une requête éditable (prend en charge les paramètres courants tels que -X / -H / -d / --data-* / -u / -b / -A / -e, y compris la gestion des guillemets, et la traite automatiquement comme un POST lorsqu’il y a un corps).
  • Import de fichier de collection : importez des fichiers de collection d’API externes (le corps brut est l’essentiel ; les groupes sont aplatis en une seule collection).
  • Génération de code : exportez la requête en cours vers un extrait de code cURL / Python / JavaScript(fetch) / Go / OkHttp en un clic, pratique pour écrire des scripts, l’intégrer dans un projet ou le partager avec un collègue.

6. Envoi fidèle : garder la reproduction proche du chemin réel

Section intitulée « 6. Envoi fidèle : garder la reproduction proche du chemin réel »

La valeur du rejeu réside dans « la requête reproduite qui correspond à l’environnement réel ». Dans les réglages du composeur, l’envoi peut conserver les mêmes caractéristiques réseau que la session de capture, rendant les résultats plus dignes de confiance :

  • Proxy amont : envoyez à travers un proxy amont (http / socks5), acheminant la requête rejouée vers un proxy d’entreprise, un hôte relais ou un autre proxy secondaire.
  • Fidélité des caractéristiques de la requête (profil de navigateur) : rétablissez les caractéristiques réseau de la requête rejouée à celles d’un client standard (comme un navigateur courant), gardant la requête reproduite cohérente avec le chemin réel.
  • DNS personnalisé : spécifiez quel DNS résout le domaine, pour éviter un empoisonnement ou emprunter une route désignée.

Avant l’envoi, toutes les valeurs dynamiques ${...} sont d’abord évaluées localement, si bien que vous voyez toujours exactement ce qui sera réellement envoyé. Chaque envoi passe par une session Composeur distincte, isolée de la session de capture ; les résultats affichent le code de statut, le protocole et le temps écoulé en ligne, et sont enregistrés en tant que Flux dans la session, si bien que, comme une requête capturée, ils peuvent être reconsultés, réédités et comparés.


Une requête composée / rejouée peut être comparée ligne par ligne, côte à côte avec une vraie requête capturée issue de l’historique, permettant de repérer rapidement « ce qui diffère exactement entre cette fois et la dernière fois pour le même point de terminaison », ce qui est particulièrement efficace pour diagnostiquer les différences de signature, de paramètres et de réponse. Voir Comparaison de requêtes.


Retour à Capture par proxy · En lien : Règles de réécriture et points d’arrêt · Comparaison de requêtes