Вернуться к документации

HTTP-данные и скачивание Outbound

Исходное тело, сохранённые ответы попыток, недоступность и проверка полноты скачивания.

Открыть как Markdown
На этой странице

Что можно получить

Исходное тело запроса и тело ответа конкретной попытки — разные файлы. Ответы сохраняются только если отправка включала save_response_body=true. По умолчанию флаг выключен; включение для нового задания не восстанавливает старый несохранённый ответ.

Диагностика и заголовки загружаются отдельно от тел. Указание размера в карточке не означает, что тело уже скачано или доступно.

В кабинете

Откройте карточку Outbound → Requests. Download request body скачивает исходное тело. Download у завершённой попытки скачивает сохранённый ответ. Если тело не сохранено или ещё недоступно, кнопка может отсутствовать и вместо неё показано состояние.

Во время скачивания Cancel download отменяет только чтение файла; это не отмена задания или HTTP-попытки. Refresh и уход со страницы также отменяют текущие загрузки. Полученный файл не встраивается в страницу как HTML получателя.

Download request body для исходного тела и Download для ответа попытки Outbound

Исходное тело и ответ попытки скачиваются разными кнопками; полнота ответа показана в Response state. Демонстрационный кабинет, английский интерфейс. Открыть полный размер.

Выберите попытку

Сначала прочитайте сводку, найдите завершённую попытку в snapshot.attempts и возьмите её attempt_id. Не подставляйте номер попытки вместо UUID. Проверьте её body_bytes_stored, body_bytes_read, body_truncated и read_complete.

Исходное тело через API

curl --fail --silent --show-error \ --header "Authorization: Bearer $ADAL_API_TOKEN" \ --output request-body.bin \ "$ADAL_API_URL/outbound/requests/$ADAL_REQUEST_ID/body"

Ответ — исходные бинарные байты, а не JSON и не base64. В примере быстрого старта файл содержит hello, а не aGVsbG8=. Пустое исходное тело допустимо.

Ответ попытки через API

curl --fail --silent --show-error \ --header "Authorization: Bearer $ADAL_API_TOKEN" \ --output response-body.bin \ "$ADAL_API_URL/outbound/requests/$ADAL_REQUEST_ID/attempts/$ADAL_ATTEMPT_ID/response/body"

Оба GET требуют API-токен, не принимают query и непустое тело запроса. API также поддерживает HEAD на путях тел для чтения заголовков, но HEAD не доказывает получение полного файла клиентом.

Полнота

Не принимайте файл за полный только потому, что он появился на диске. Проверьте успешное завершение клиента, ожидаемую длину при наличии Content-Length и отсутствие обрыва потока. При ошибке не используйте частично записанный файл как готовый результат. Ответ без Content-Length сам по себе не является ошибкой: поток может передаваться chunked.

Отдельно проверяйте сводку: сохранённое тело может быть усечено, а исходный ответ — прочитан не полностью. Успешная загрузка сохранённого фрагмента не превращает его в полный ответ получателя. Ответы неуспешных попыток также могут быть сохранены и участвовать в расходе.

Недоступность и ошибки

Ответ чтения Значение и действие
409 response_body_not_saved Сохранение было выключено; позднее тело не появится
409 not_yet_available Ещё не готово; проверьте попытку и повторите чтение позднее
409 с duplicate_of Читать данные оригинала, не дубля
410 Срок HTTP-данных истёк
404 Проверить request/attempt ID, владельца и существование данных
503 до начала ответа Временный отказ чтения; повторить чтение, а не отправку

После начала потока ошибка может проявиться обрывом соединения без JSON-ошибки в конце файла. Поэтому нельзя полагаться только на изначальный HTTP-код 200.

Хранение, расход и безопасность

Скачивание не продлевает срок хранения и не создаёт новую отправку. Истечение не возвращает учтённые байты. Сохранённые ответы всех попыток участвуют в расходе при включённом флаге. Сохраняйте файлы в защищённом месте, не открывайте неизвестное содержимое как доверенный HTML и не публикуйте токены, тела или персональные данные в скриншотах.

Быстрый старт, диагностика, хранение, трафик.

Связанная документация