Работа с base64 при разработке веб-сервиса

Допустим, у вас имеется веб-портал, который генерирует печатную форму в формате doc/docx. Генерация печатной формы происходит на стороне сервера - вызывается веб-сервис, который возвращает строку base64.

Для отладки такого веб-сервиса потребуется:
  • Google Chrome
  • Notepad++
Откройте страницу веб-портала с данным функционалом в браузере Google Chrome и вызовите панель отладки, нажав на F12. Выполните команду формирования печатной формы (т.е. команду, которая отвечает за вызов веб-сервиса), после этого действия в окне отладки отразится пункт с информацией по выполнению команды (информация о выполнении POST-запроса) (см. рисунок 1).
Рисунок 1. Панель отладки Google Chrome

Выделите пункт, вызовите контекстное меню и выберите пункт Copy -> Copy response (копировать ответ) (см. рисунок 2).
Рисунок 2. Копирование ответа
Откройте Notepad++ и вставьте данные ответа (см. рисунок 3).
Рисунок 3. Данные ответа
Удалите лишнюю информацию, оставив строку base64. Выделите весь текст, вызовите контекстное меню и выберите пункт Plugin commands -> Base64 Decode (см. рисунок 4).
Рисунок 4. Декодирование строки Base64 в Notepad++
Сохраните файл с необходимым расширением. Если файл открылся, то вы все правильно сделали и ваш веб-сервис отдает корректные данные.

Если данный способ вам не подходит, то можно напрямую тестировать веб-сервисы с помощью программы SoapUI. Откройте SoapUI, загрузите описание веб-сервиса (WSDL-файл) и выполните запрос на необходимый метод веб-сервиса (см. рисунок 5).
Рисунок 5. Вызов метода веб-сервиса в SoapUI
Как видно из рисунка, в моем случае строка base64 заворачивается в JSON, что за собой влечет экранирование некоторых символов и отображение системных в явном виде.

Скопируйте строку base64 в Notepad++. Выполните замену всех экранированных символов (см. рисунок 6):
  • \\r\\n на \r\n;
  • \/ на /.
Рисунок 6. Замена экранированных символов в Base64 с помощью Notepad++
Обязательно должен быть установлен режим поиска – расширенный. Далее выделите полученную строку, вызовите контекстное меню и выберите пункт Plugin commands -> Base64 Decode. Сохраните файл с необходимым расширением.

Данные способы тестирования веб-сервиса с помощью браузера и SoapUI должны подойти так же и для тестирования http-сервисов, но, к сожалению на деле не проверял.

Комментарии