Salta ai contenuti

Componi e riproduci (Composer)

La cattura non riguarda solo l’“osservare”. Il composer di richieste di Trace Eagle (Composer) riunisce in un solo posto “la richiesta reale catturata” e “la costruzione e il debug manuali”: qualsiasi richiesta catturata può essere reinviata così com’è, oppure reinviata dopo aver modificato i parametri; puoi anche costruire una richiesta da zero e inviarla. Basta passare avanti e indietro tra uno strumento di cattura e uno strumento separato di debug delle API.


  • Reinvia / modifica e riproduci: fai clic destro nell’elenco del traffico, oppure fai clic su “Modifica e reinvia” nel pannello dei dettagli, per caricare questa richiesta catturata nel composer così com’è. L’indirizzo viene ripristinato dal protocollo / host / porta al momento della cattura, gli header di connessione irrilevanti vengono rimossi, e il body e il suo tipo vengono rilevati dal contenuto, tutto automaticamente. Modifica qualche parametro e reinvia.
  • Costruisci da zero: assembla una nuova richiesta a mano direttamente nel composer.

Entrambi i punti di ingresso usano lo stesso canale di invio, e i risultati vengono registrati in una scheda di sessione Composer separata (mantenendo l’intera cronologia), dove, come una richiesta catturata, possono essere visualizzati, modificati di nuovo e confrontati.


  • Riga di richiesta: metodo (GET / POST / PUT / DELETE / PATCH / HEAD / OPTIONS) + URL.
  • Tabella dei parametri: i parametri di query vengono gestiti riga per riga in una tabella, tenuti separati dall’URL e assemblati solo al momento dell’invio, il che significa che i segnaposto dinamici al loro interno non vengono corrotti da una codifica prematura.
  • Tabella degli header: aggiungi, rimuovi o modifica qualsiasi riga di header una per una.
  • Helper di autenticazione: None / Bearer Token / Basic (nome utente + password, base64 automatica); ha effetto solo quando non hai scritto tu stesso un header Authorization.
  • Body: nessuno / JSON / form (form-urlencoded) / testo grezzo; scegliendo JSON o form viene aggiunto automaticamente il Content-Type corrispondente.

3. Valori dinamici: gestire API private firmate / cifrate

Sezione intitolata “3. Valori dinamici: gestire API private firmate / cifrate”

Qualsiasi campo può contenere valori dinamici ${...}, valutati dal motore prima dell’invio. Questa è una salvezza per il debug di API private che portano una firma / timestamp / nonce:

Valore dinamico Scopo
${uuid} / ${randomUUID} UUID casuale
${timestamp} Timestamp Unix in secondi
${timestampMs} / ${now} Timestamp Unix in millisecondi
${random} Hex casuale a 16 cifre
${randomInt:min,max} Intero casuale in un intervallo
${base64:} / ${base64url:} / ${base64decode:} Codifica / decodifica Base64
${md5:} / ${sha1:} / ${sha256:} Hash
${hmacSha256:key,msg} / ${hmacSha256Base64:key,msg} / ${hmacSha1:key,msg} Firma HMAC
${urlEncode:} / ${upper:} / ${lower:} Codifica URL / conversione maiuscole-minuscole
  • Annidamento supportato: ad esempio ${hmacSha256:${secret},${body}}, risolve prima la variabile, poi calcola la firma.
  • Tutto ciò che non può essere risolto viene mantenuto così com’è, così puoi individuare a colpo d’occhio quale variabile non è stata valutata, mentre gli strumenti comuni spesso generano un errore o inviano un valore vuoto quando incontrano una variabile non definita.

Composer: metodo + URL, con sezioni parametri / header / autenticazione / body; i campi possono contenere valori dinamici ${...} (ad esempio calcolando una firma al volo con ${hmacSha256:...}), insieme a raccolte e ambienti


  • Variabili d’ambiente: estrai ${name} in variabili d’ambiente, e passa tra più ambienti (come “dev / test / prod”) con un clic; le variabili possono riferirsi a vicenda ed espandersi a catena.
  • Raccolte: raggruppa le richieste usate di frequente in cartelle con nome, salva la richiesta corrente in qualsiasi momento, e ricaricala per riutilizzarla quando vuoi.
  • Salvataggio automatico dello spazio di lavoro: raccolte + ambienti vengono salvati automaticamente come file in testo semplice, versionabile che può essere confrontato e revisionato, rendendo facile la condivisione all’interno di un team e il tracciamento della cronologia.

  • Importazione cURL: incolla un comando cURL per analizzarlo in una richiesta modificabile (supporta parametri comuni come -X / -H / -d / --data-* / -u / -b / -A / -e, inclusa la gestione delle virgolette, e lo tratta automaticamente come POST quando c’è un body).
  • Importazione di file di raccolta: importa file di raccolte API esterne (il body grezzo è il punto centrale; i gruppi vengono appiattiti in un’unica raccolta).
  • Generazione di codice: esporta la richiesta corrente in uno snippet di codice cURL / Python / JavaScript(fetch) / Go / OkHttp con un clic, comodo per scrivere script, inserirlo in un progetto o condividerlo con un collega.

6. Invio fedele: mantenere la riproduzione vicina al percorso reale

Sezione intitolata “6. Invio fedele: mantenere la riproduzione vicina al percorso reale”

Il valore della riproduzione sta nel “far corrispondere la richiesta riprodotta all’ambiente reale”. Nelle impostazioni del composer, l’invio può mantenere le stesse caratteristiche di rete della sessione di cattura, rendendo i risultati più affidabili:

  • Proxy a monte: invia attraverso un proxy a monte (http / socks5), instradando la richiesta riprodotta verso un proxy aziendale, un jump host o un altro proxy secondario.
  • Fedeltà delle caratteristiche della richiesta (profilo del browser): ripristina le caratteristiche di rete della richiesta riprodotta a quelle di un client standard (come un browser comune), mantenendo la richiesta riprodotta coerente con il percorso reale.
  • DNS personalizzato: specifica quale DNS risolve il dominio, per evitare l’avvelenamento o prendere una rotta designata.

Prima dell’invio, tutti i valori dinamici ${...} vengono valutati prima localmente, così puoi sempre vedere esattamente cosa verrà effettivamente inviato. Ogni invio passa attraverso una sessione Composer separata, isolata dalla sessione di cattura; i risultati mostrano inline il codice di stato, il protocollo e il tempo trascorso, e vengono registrati come Flow nella sessione, così, come una richiesta catturata, possono essere visualizzati di nuovo, modificati di nuovo e confrontati.


Una richiesta composta / riprodotta può essere confrontata riga per riga, fianco a fianco con una richiesta reale catturata dalla cronologia, individuando rapidamente “cosa differisce esattamente tra questa volta e la volta scorsa per lo stesso endpoint”, il che è particolarmente efficiente per risolvere differenze di firma, parametri e risposta. Vedi Confronto delle richieste.


Torna a Cattura tramite proxy · Correlati: Regole di riscrittura e breakpoint · Confronto delle richieste