Перейти к содержимому

Конструирование и повтор (конструктор)

Захват — это не только «смотреть». Конструктор запросов (Composer) Trace Eagle объединяет в одном месте «реально захваченный запрос» и «ручную сборку и отладку»: любой захваченный запрос можно отправить заново как есть или после подправки параметров; можно также собрать запрос с нуля и отправить его. Больше не нужно переключаться между инструментом захвата и отдельным инструментом отладки API.


  • Отправить заново / отредактировать и повторить: кликните правой кнопкой в списке трафика или нажмите «Отредактировать и отправить заново» на панели деталей, чтобы загрузить этот захваченный запрос в конструктор как есть. Адрес восстанавливается из протокола / хоста / порта на момент захвата, посторонние заголовки соединения удаляются, а тело и его тип определяются по содержимому — всё автоматически. Подправьте несколько параметров и отправьте заново.
  • Собрать с нуля: соберите новый запрос вручную прямо в конструкторе.

Обе точки входа используют один и тот же канал отправки, и результаты записываются в отдельную вкладку сессии конструктора (с сохранением полной истории), где, как и захваченный запрос, их можно просматривать, редактировать заново и сравнивать.


  • Строка запроса: метод (GET / POST / PUT / DELETE / PATCH / HEAD / OPTIONS) + URL.
  • Таблица параметров: параметры запроса управляются построчно в таблице, отдельно от URL, и собираются только в момент отправки, а значит, динамические подстановки внутри не ломаются преждевременным кодированием.
  • Таблица заголовков: добавляйте, удаляйте или редактируйте любую строку заголовка построчно.
  • Помощник авторизации: None / Bearer Token / Basic (имя пользователя + пароль, base64 автоматически); действует, только если вы сами не написали заголовок Authorization.
  • Тело: none / JSON / форма (form-urlencoded) / сырой текст; выбор JSON или формы автоматически добавляет соответствующий Content-Type.

3. Динамические значения: работа с подписанными / зашифрованными приватными API

Заголовок раздела «3. Динамические значения: работа с подписанными / зашифрованными приватными API»

Любое поле может содержать динамические значения ${...}, которые движок вычисляет перед отправкой. Это спасение при отладке приватных API, несущих подпись / метку времени / nonce:

Динамическое значение Назначение
${uuid} / ${randomUUID} Случайный UUID
${timestamp} Unix-время в секундах
${timestampMs} / ${now} Unix-время в миллисекундах
${random} Случайные 16 hex-цифр
${randomInt:min,max} Случайное целое число в диапазоне
${base64:} / ${base64url:} / ${base64decode:} Кодирование / декодирование Base64
${md5:} / ${sha1:} / ${sha256:} Хэш
${hmacSha256:key,msg} / ${hmacSha256Base64:key,msg} / ${hmacSha1:key,msg} HMAC-подпись
${urlEncode:} / ${upper:} / ${lower:} URL-кодирование / смена регистра
  • Поддержка вложенности: например ${hmacSha256:${secret},${body}} — сначала разрешается переменная, затем вычисляется подпись.
  • Всё, что не удалось разрешить, сохраняется как есть, так что вы сразу видите, какая переменная не была вычислена, тогда как обычные инструменты часто выдают ошибку или отправляют пустое значение при встрече с неопределённой переменной.

Конструктор: метод + URL, с разделами параметров / заголовков / авторизации / тела; поля могут содержать динамические значения ${...} (например, вычисление подписи на лету через ${hmacSha256:...}), а также коллекции и окружения


  • Переменные окружения: вынесите ${name} в переменные окружения и переключайтесь между несколькими окружениями (например, «разработка / тест / прод») в один клик; переменные могут ссылаться друг на друга и разворачиваться цепочкой.
  • Коллекции: сгруппируйте часто используемые запросы в именованные папки, сохраняйте текущий запрос в любой момент и загружайте его обратно для повторного использования, когда захотите.
  • Автоматическое сохранение рабочего пространства: коллекции + окружения автоматически сохраняются как текстовый, поддающийся версионированию файл, который можно сравнивать и просматривать; это упрощает работу в команде и отслеживание истории.

  • Импорт cURL: вставьте команду cURL, чтобы разобрать её в редактируемый запрос (поддерживаются распространённые параметры вроде -X / -H / -d / --data-* / -u / -b / -A / -e, включая обработку кавычек, и автоматически распознаётся POST при наличии тела).
  • Импорт файла коллекции: импортируйте внешние файлы коллекций API (в фокусе — сырое тело; группы разворачиваются в единую коллекцию).
  • Генерация кода: экспортируйте текущий запрос в сниппет кода cURL / Python / JavaScript(fetch) / Go / OkHttp в один клик — удобно для написания скриптов, вставки в проект или отправки коллеге.

6. Достоверная отправка: сохранить воспроизведение близким к реальному пути

Заголовок раздела «6. Достоверная отправка: сохранить воспроизведение близким к реальному пути»

Ценность повтора — в том, что «воспроизведённый запрос соответствует реальному окружению». В настройках конструктора отправка может сохранять те же сетевые характеристики, что и в сессии захвата, делая результаты более достоверными:

  • Вышестоящий прокси: отправка через вышестоящий прокси (http / socks5), направляя воспроизведённый запрос на корпоративный прокси, промежуточный узел или другой вторичный прокси.
  • Достоверность характеристик запроса (профиль браузера): восстановить сетевые характеристики воспроизведённого запроса до характеристик стандартного клиента (например, распространённого браузера), чтобы воспроизведённый запрос соответствовал реальному пути.
  • Пользовательский DNS: указать, каким DNS резолвить домен, чтобы избежать отравления или пойти по заданному маршруту.

Перед отправкой все динамические значения ${...} сначала вычисляются локально, так что вы всегда точно видите, что именно будет отправлено. Каждая отправка проходит через отдельную сессию конструктора, изолированную от сессии захвата; результаты показывают код состояния, протокол и затраченное время прямо на месте и записываются как Flow в сессии, так что, как и захваченный запрос, их можно снова просматривать, редактировать и сравнивать.


Собранный / воспроизведённый запрос можно сравнить построчно, бок о бок с реальным запросом, захваченным ранее в истории, быстро определив, «чем именно этот раз отличается от прошлого для одного и того же эндпоинта», что особенно эффективно для устранения различий в подписи, параметрах и ответе. См. Сравнение запросов.


Назад к Захвату через прокси · Смотрите также: Правила переписывания и точки останова · Сравнение запросов