Compor e Reproduzir (Compositor)
A captura não se trata apenas de “observar”. O compositor de requisições do Trace Eagle (Composer) coloca “a requisição real capturada” e “a construção e depuração manuais” em um só lugar: qualquer requisição capturada pode ser reenviada como está, ou reenviada após ajustar parâmetros; você também pode construir uma requisição do zero e enviá-la. Chega de alternar entre uma ferramenta de captura e uma ferramenta separada de depuração de API.
1. Dois pontos de entrada
Seção intitulada “1. Dois pontos de entrada”- Reenviar / editar e reproduzir: clique com o botão direito na lista de tráfego, ou clique em “Editar e reenviar” no painel de detalhes, para carregar essa requisição capturada no compositor como está. O endereço é restaurado a partir do protocolo / host / porta no momento da captura, cabeçalhos de conexão irrelevantes são removidos, e o corpo e seu tipo são detectados a partir do conteúdo, tudo automaticamente. Ajuste alguns parâmetros e reenvie.
- Construir do zero: monte uma nova requisição à mão diretamente no compositor.
Ambos os pontos de entrada usam o mesmo canal de envio, e os resultados são registrados em uma aba de sessão do Compositor separada (mantendo o histórico completo), onde, como uma requisição capturada, podem ser visualizados, editados novamente e comparados.
2. Construir uma requisição à mão
Seção intitulada “2. Construir uma requisição à mão”- Linha da requisição: método (GET / POST / PUT / DELETE / PATCH / HEAD / OPTIONS) + URL.
- Tabela de parâmetros: os parâmetros de consulta são gerenciados linha por linha em uma tabela, mantidos separados da URL e montados apenas no momento do envio, o que significa que os marcadores dinâmicos internos não são quebrados por uma codificação prematura.
- Tabela de cabeçalhos: adicione, remova ou edite qualquer cabeçalho linha por linha.
- Auxiliar de autenticação: None / Bearer Token / Basic (usuário + senha, base64 automaticamente); só surte efeito quando você não escreveu um cabeçalho Authorization por conta própria.
- Corpo: nenhum / JSON / formulário (form-urlencoded) / texto bruto; escolher JSON ou formulário adiciona automaticamente o Content-Type correspondente.
3. Valores dinâmicos: lide com APIs privadas assinadas / criptografadas
Seção intitulada “3. Valores dinâmicos: lide com APIs privadas assinadas / criptografadas”Qualquer campo pode conter valores dinâmicos ${...}, avaliados pelo mecanismo antes do envio. Isso é uma mão na roda para depurar APIs privadas que carregam uma assinatura / timestamp / nonce:
| Valor dinâmico | Finalidade |
|---|---|
${uuid} / ${randomUUID} |
UUID aleatório |
${timestamp} |
Timestamp Unix em segundos |
${timestampMs} / ${now} |
Timestamp Unix em milissegundos |
${random} |
Hex aleatório de 16 dígitos |
${randomInt:min,max} |
Inteiro aleatório em um intervalo |
${base64:} / ${base64url:} / ${base64decode:} |
Codificar / decodificar Base64 |
${md5:} / ${sha1:} / ${sha256:} |
Hash |
${hmacSha256:key,msg} / ${hmacSha256Base64:key,msg} / ${hmacSha1:key,msg} |
Assinatura HMAC |
${urlEncode:} / ${upper:} / ${lower:} |
Codificação de URL / conversão de maiúsculas e minúsculas |
- Suporte a aninhamento: por exemplo
${hmacSha256:${secret},${body}}, resolve a variável primeiro, depois calcula a assinatura. - Tudo que não pode ser resolvido é mantido como está, então você percebe num relance qual variável não foi avaliada, ao passo que as ferramentas comuns costumam dar erro ou enviar um valor vazio quando encontram uma variável indefinida.

4. Ambientes e coleções
Seção intitulada “4. Ambientes e coleções”- Variáveis de ambiente: extraia
${name}para variáveis de ambiente e alterne entre múltiplos ambientes (como “dev / teste / prod”) com um clique; as variáveis podem referenciar umas às outras e expandir em cadeia. - Coleções: agrupe requisições usadas com frequência em pastas nomeadas, salve a requisição atual a qualquer momento e carregue-a de volta para reutilizar quando quiser.
- Salvamento automático do espaço de trabalho: coleções + ambientes são salvos automaticamente como um arquivo de texto puro, versionável que pode ser comparado e revisado, facilitando o compartilhamento dentro de uma equipe e o rastreamento do histórico.
5. Importação e geração de código
Seção intitulada “5. Importação e geração de código”- Importação de cURL: cole um comando cURL para analisá-lo em uma requisição editável (suporta parâmetros comuns como
-X / -H / -d / --data-* / -u / -b / -A / -e, incluindo o tratamento de aspas, e o trata automaticamente como POST quando há um corpo). - Importação de arquivo de coleção: importe arquivos externos de coleção de API (o corpo bruto é o foco; os grupos são achatados em uma única coleção).
- Geração de código: exporte a requisição atual para um trecho de código em cURL / Python / JavaScript(fetch) / Go / OkHttp com um clique, útil para escrever scripts, inserir em um projeto ou compartilhar com um colega.
6. Envio fiel: mantenha a reprodução próxima do caminho real
Seção intitulada “6. Envio fiel: mantenha a reprodução próxima do caminho real”O valor da reprodução está em “a requisição reproduzida corresponder ao ambiente real”. Nas configurações do compositor, o envio pode manter as mesmas características de rede da sessão de captura, tornando os resultados mais confiáveis:
- Proxy upstream: envie através de um proxy upstream (http / socks5), roteando a requisição reproduzida para um proxy corporativo, host de salto ou outro proxy secundário.
- Fidelidade das características da requisição (perfil de navegador): restaure as características de rede da requisição reproduzida para as de um cliente padrão (como um navegador comum), mantendo a requisição reproduzida consistente com o caminho real.
- DNS personalizado: especifique qual DNS resolve o domínio, para evitar envenenamento ou tomar uma rota designada.
Antes do envio, todos os valores dinâmicos ${...} são avaliados localmente primeiro, então você sempre consegue ver exatamente o que será realmente enviado. Cada envio passa por uma sessão separada do Compositor, isolada da sessão de captura; os resultados mostram o código de status, o protocolo e o tempo decorrido em linha, e são registrados como um Flow na sessão, de modo que, como uma requisição capturada, podem ser visualizados novamente, editados novamente e comparados.
7. Combine com a comparação de requisições (Diff)
Seção intitulada “7. Combine com a comparação de requisições (Diff)”Uma requisição composta / reproduzida pode ser comparada linha por linha, lado a lado com uma requisição real capturada do histórico, identificando rapidamente “o que exatamente difere entre esta vez e a última para o mesmo endpoint”, o que é especialmente eficiente para investigar diferenças de assinatura, parâmetros e respostas. Veja Comparação de Requisições.
Voltar para Captura por Proxy · Relacionados: Regras de Reescrita e Pontos de Interrupção · Comparação de Requisições