Загрузить или просмотреть файлы, отправленные как составной запрос (PNG, PDF) через сетевой прокси-сервер?

Как загрузить или просмотреть файлы, отправленные как составной запрос (например, PUT) с помощью программного инструмента?

Есть ли способ сделать это с помощью специального инструмента, такого как CharlesProxy на macOSX, для загрузки и просмотра файлов, которые были отправлены как часть запроса (составной запрос PUT)? Обычно я исправляю такие проблемы, сохраняя файл в песочнице с помощью изменений кода. В идеале нужно что-то, что может использоваться нашим QA и не требует модификации кода.

Charles Proxy на macos достаточно для большинства потребностей разработчиков/контролеров качества, таких как:

  • Дроссельная сеть
  • Отладка устройства
  • Скачать данные ответа
  • ...

Однако в Charles Proxy 4.x нет возможности просматривать или загружать файлы в HTTP-запросе: Снимок экрана Charles Proxy 4.x Запрос на сохранение/просмотр

Charles Proxy 4.x (и более ранние версии) позволяет сохранять файлы ответов, например pdf на этом снимке экрана: Снимок экрана Charles Proxy 4.x Сохранить/Копировать ответ


person lal    schedule 07.12.2017    source источник


Ответы (1)


Это можно сделать, отредактировав бинарный файл вручную. Это немного сложно, но может сохранить файл в составном HTTP-запросе без каких-либо изменений в коде проекта.

Вот шаги (проверено на Charles v4.2.8 и macOS v10.12.6):

  1. Сохранить запрос. Щелкните правой кнопкой мыши записанный HTTP-запрос (тот, который отправляет файл) и нажмите «Сохранить запрос...». Это сохранит весь HTTP-запрос в двоичном формате. введите здесь описание изображения

  2. Проверить шестнадцатеричное представление запроса. Щелкните левой кнопкой мыши записанный HTTP-запрос и выберите вкладку «Hex» на панели «Запрос». Это покажет двоичное представление запроса вместе с некоторым проанализированным текстом. введите здесь описание изображения

  3. Изменить сохраненный запрос. Откройте сохраненный запрос (шаг 1) с помощью редактора, поддерживающего двоичный код, например Sublime Text. Затем удалите весь двоичный код, не относящийся к изображению, в соответствии с результатом шага 2. В частности, удалите все байты перед (и включите) первой пустой строкой (0d0a0d0a в macOS и Windows, 0a0a в Linux) и удалите последние байты. Например, на следующем снимке экрана показаны байты запроса на шаге 2, выбранные байты будут удалены (обратите внимание на 0d0a байт, так как этот эксперимент проводится на Mac): введите здесь описание изображения ... < a href="https://i.stack.imgur.com/bHv80.png" rel="nofollow noreferrer">введите описание изображения здесь

  4. Сохранить файл изображения. Сохраните файл после завершения шага 3. Затем добавьте расширение имени файла в соответствии со значением Content-Type на шаге 2. В этом эксперименте Content-Type равно image/png, поэтому к имени файла добавляется .png.

Вот и все. Теперь вы можете открыть файл xxx.png. Это чистый файл изображения.

Примечание: этот эксперимент содержит только 1 файл, но стратегия работает, когда в запросе загружено несколько файлов.

person shaochuancs    schedule 09.07.2019