Zum Inhalt springen

Zusammenstellen und Wiederholen (Composer)

Beim Mitschneiden geht es nicht nur ums „Hinschauen“. Der Request-Composer von Trace Eagle (Composer) vereint „den echten mitgeschnittenen Request“ und „manuelles Zusammenbauen und Debuggen“ an einem Ort: Jeder mitgeschnittene Request kann unverändert erneut gesendet werden, oder erneut gesendet werden, nachdem Parameter angepasst wurden; du kannst auch einen Request von Grund auf bauen und senden. Kein Hin- und Herwechseln mehr zwischen einem Mitschnitt-Tool und einem separaten API-Debugging-Tool.


  • Erneut senden / bearbeiten und wiederholen: Rechtsklick in der Verkehrsliste oder Klick auf „Bearbeiten und erneut senden“ im Detailbereich, um diesen mitgeschnittenen Request unverändert in den Composer zu laden. Die Adresse wird aus Protokoll / Host / Port zum Mitschnittzeitpunkt wiederhergestellt, irrelevante Verbindungsheader werden entfernt, und der Body sowie sein Typ werden aus dem Inhalt erkannt, alles automatisch. Passe ein paar Parameter an und sende erneut.
  • Von Grund auf bauen: einen neuen Request direkt im Composer von Hand zusammenstellen.

Beide Einstiegspunkte nutzen denselben Sendekanal, und die Ergebnisse werden in einem separaten Composer-Sitzungstab festgehalten (der die vollständige Historie bewahrt), wo sie sich wie ein mitgeschnittener Request ansehen, erneut bearbeiten und vergleichen lassen.


  • Request-Zeile: Methode (GET / POST / PUT / DELETE / PATCH / HEAD / OPTIONS) + URL.
  • Parametertabelle: Query-Parameter werden Zeile für Zeile in einer Tabelle verwaltet, getrennt von der URL gehalten und erst beim Senden zusammengesetzt, wodurch die dynamischen Platzhalter darin nicht durch verfrühtes Kodieren zerstört werden.
  • Header-Tabelle: einen beliebigen Header Zeile für Zeile hinzufügen, entfernen oder bearbeiten.
  • Auth-Helfer: None / Bearer Token / Basic (Benutzername + Passwort, Base64 automatisch); greift nur, wenn du nicht selbst einen Authorization-Header geschrieben hast.
  • Body: none / JSON / form (form-urlencoded) / roher Text; die Wahl von JSON oder form fügt automatisch den passenden Content-Type hinzu.

3. Dynamische Werte: signierte / verschlüsselte private APIs meistern

Abschnitt betitelt „3. Dynamische Werte: signierte / verschlüsselte private APIs meistern“

Jedes Feld kann ${...}-dynamische Werte enthalten, die von der Engine vor dem Senden ausgewertet werden. Das ist ein Rettungsanker beim Debuggen privater APIs, die eine Signatur / einen Zeitstempel / eine Nonce mitführen:

Dynamischer Wert Zweck
${uuid} / ${randomUUID} Zufällige UUID
${timestamp} Unix-Zeitstempel in Sekunden
${timestampMs} / ${now} Unix-Zeitstempel in Millisekunden
${random} 16-stelliger zufälliger Hex-Wert
${randomInt:min,max} Zufällige Ganzzahl in einem Bereich
${base64:} / ${base64url:} / ${base64decode:} Base64-Kodierung / -Dekodierung
${md5:} / ${sha1:} / ${sha256:} Hash
${hmacSha256:key,msg} / ${hmacSha256Base64:key,msg} / ${hmacSha1:key,msg} HMAC-Signatur
${urlEncode:} / ${upper:} / ${lower:} URL-Kodierung / Umwandlung der Groß-/Kleinschreibung
  • Verschachtelung unterstützt: zum Beispiel ${hmacSha256:${secret},${body}}, erst die Variable auflösen, dann die Signatur berechnen.
  • Alles, was sich nicht auflösen lässt, bleibt unverändert, sodass du auf einen Blick erkennst, welche Variable nicht ausgewertet wurde, während gewöhnliche Tools bei einer undefinierten Variable oft mit einem Fehler abbrechen oder einen leeren Wert senden.

Composer: Methode + URL, mit Abschnitten für Parameter / Header / Auth / Body; Felder können ${...}-dynamische Werte enthalten (zum Beispiel eine Signatur spontan mit ${hmacSha256:...} berechnen), dazu Sammlungen und Umgebungen


  • Umgebungsvariablen: ${name} in Umgebungsvariablen auslagern und zwischen mehreren Umgebungen (etwa „dev / test / prod“) mit einem Klick wechseln; Variablen können sich gegenseitig referenzieren und in einer Kette expandieren.
  • Sammlungen: häufig genutzte Requests unter benannten Ordnern gruppieren, den aktuellen Request jederzeit speichern und ihn zur Wiederverwendung nach Belieben zurückladen.
  • Automatisches Speichern des Arbeitsbereichs: Sammlungen + Umgebungen werden automatisch als klartextbasierte, versionierbare Datei gespeichert, die sich diffen und prüfen lässt, was das Teilen im Team und das Nachverfolgen der Historie erleichtert.

  • cURL-Import: einen cURL-Befehl einfügen, um ihn in einen bearbeitbaren Request zu parsen (unterstützt gängige Parameter wie -X / -H / -d / --data-* / -u / -b / -A / -e, inklusive Anführungszeichen-Behandlung, und behandelt ihn automatisch als POST, wenn ein Body vorhanden ist).
  • Import von Sammlungsdateien: externe API-Sammlungsdateien importieren (der rohe Body steht im Mittelpunkt; Gruppen werden zu einer einzigen Sammlung abgeflacht).
  • Codegenerierung: den aktuellen Request mit einem Klick in ein cURL- / Python- / JavaScript(fetch)- / Go- / OkHttp-Codeschnipsel exportieren, praktisch zum Schreiben von Skripten, Einfügen in ein Projekt oder Teilen mit einem Kollegen.

6. Originalgetreues Senden: die Reproduktion nah am echten Pfad halten

Abschnitt betitelt „6. Originalgetreues Senden: die Reproduktion nah am echten Pfad halten“

Der Wert des Wiederholens liegt darin, dass „der reproduzierte Request der echten Umgebung entspricht“. In den Einstellungen des Composers kann das Senden dieselben Netzwerkmerkmale wie die Mitschnittsitzung beibehalten, was die Ergebnisse vertrauenswürdiger macht:

  • Vorgeschalteter Proxy: über einen vorgeschalteten Proxy (http / socks5) senden und den wiederholten Request an einen Firmen-Proxy, einen Sprungserver oder einen anderen sekundären Proxy leiten.
  • Treue der Request-Merkmale (Browser-Profil): die Netzwerkmerkmale des wiederholten Requests auf die eines Standard-Clients (etwa eines gängigen Browsers) zurücksetzen und den reproduzierten Request so mit dem echten Pfad in Einklang halten.
  • Benutzerdefiniertes DNS: festlegen, welcher DNS die Domain auflöst, um Poisoning zu vermeiden oder eine bestimmte Route zu nehmen.

Vor dem Senden werden alle ${...}-dynamischen Werte zuerst lokal ausgewertet, sodass du immer genau siehst, was tatsächlich gesendet wird. Jedes Senden läuft über eine separate Composer-Sitzung, isoliert von der Mitschnittsitzung; die Ergebnisse zeigen den Statuscode, das Protokoll und die verstrichene Zeit inline und werden als Flow in der Sitzung festgehalten, sodass sie sich wie ein mitgeschnittener Request erneut ansehen, erneut bearbeiten und vergleichen lassen.


Ein zusammengestellter / wiederholter Request lässt sich Zeile für Zeile, Seite an Seite mit einem echten mitgeschnittenen Request aus der Historie vergleichen, was schnell aufdeckt, „was sich diesmal gegenüber dem letzten Mal beim selben Endpunkt genau unterscheidet“, was besonders effizient ist, um Unterschiede bei Signatur, Parametern und Response aufzuspüren. Siehe Request-Vergleich.


Zurück zu Proxy-Mitschnitt · Verwandt: Rewrite-Regeln und Breakpoints · Request-Vergleich