Как отправить файл в postman
Перейти к содержимому

Как отправить файл в postman

  • автор:

Передать файл (изображение) в переменную через POST в Retrofit 2

запрос в POSTMAN

Здравствуйте. Как передать файл(jpeg, png, jpg) в переменную через POST в Retrofit 2 ? Есть такой запрос: Запрос со скриншота выше нормально отрабатывает в Postman. В приложении есть возможность вместе с другими данными отправить и файл. Если не отправляю файл, то использую такой код: @FormUrlEncoded @POST(«create_user») Call addUser(@Query(«token») String token, @FieldMap Map params);

 Map params = new HashMap<>(); params.put("user_id", какое-то_значение); params.put("login", какое-то_значение); params.put("password", какое-то_значение); ApiController.addUser(getToken(getActivity()), params); 

Этот код отрабатывает нормально. То есть, если пользователь не отправляет файл, то все работает. Подскажите, пожалуйста, что нужно доделать, чтобы была возможность отправить файл. Раньше переделывал изображение в base64 и как строку вставляли её в одно из полей в запросе. Но теперь нужно сделать запрос именно так как на скриншоте в Postman.

Отслеживать
задан 31 янв 2017 в 23:04
21 5 5 бронзовых знаков

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

Ссылку от пользователя pavel163 я видел раньше. Но ночью не заметил переключение пунктов. Ответ оказался в подпункте Passing Multiple Parts Along a File with @PartMap. В статье советовали использовать FileUtils, но обошёлся без него. Ниже привожу используемый мной код.

Методы из вопроса были заменены на следующие:

 @Multipart @POST("create_user") Call addUser(@Query("token") String token, @PartMap() Map partMap, @Part MultipartBody.Part file); File file = new File(mFilePath); MultipartBody.Part body = ApiUtils.prepareFilePart(getActivity(), "image", file); RequestBody login = createPartFromString(mEdtLogin.getText().toString()); RequestBody password = createPartFromString(mEdtPassword.getText().toString()); RequestBody userId = createPartFromString(mUserId + ""); HashMap params = new HashMap<>(); params.put("login", login); params.put("password", password); params.put("user_id", userId); ApiController.addUser(PreferencesUtils.getToken(getActivity()), params, body); 

Допольно использовались методs createPartFromString() и prepareFilePart(). Ниже код:

 private RequestBody createPartFromString(String descriptionString) < return RequestBody.create( okhttp3.MultipartBody.FORM, descriptionString); >@NonNull public static MultipartBody.Part prepareFilePart(Context context, String partName, File file) < String mimeType = URLConnection.guessContentTypeFromName(file.getName()); RequestBody requestFile = RequestBody.create(MediaType.parse(mimeType),file); // MultipartBody.Part is used to send also the actual file name return MultipartBody.Part.createFormData(partName, file.getName(), requestFile); >

Как отправить файл в postman

Вы можете использовать Postman для отправки запросов API. Для этого установите приложение Postman или зарегистрируйтесь в веб-версии. Подробно о том, как работать с Postman читайте в Postman Support Center.

Импорт коллекции методов

После авторизации импортируйте коллекцию методов нашего API:

  1. Скачайте коллекции по ссылкам.
  2. Откройте Postman. Выберите меню — FileImport.
  3. Откроется окно Import. Нажмите кнопку Upload Files.
  4. Выберите скаченные файлы с коллекциями API Bot.one и нажмите Открыть.
  5. Выбранные файлы отобразятся в таблице. Нажмите Import.

В результате коллекция будет загружена в Postman, методы появятся на панели слева.

Отправка запроса

Теперь все доступные методы доступны у вас в Postman. Отправить запрос очень просто.

  1. Выберите метод на боковой панели.
  2. Справа появится запрос и его параметры.
  3. В строке запроса на месте > введите адрес вашего инстанса, например: manual.bot.one .
  4. Запрос также может содержать другие параметры в заголовке, без которых он не будет отправлен. Такие параметры выделены цветом и фигурными скобками > . Добавьте на место скобок нужные данные.
  5. На вкладке Params перечислены все параметры, которые могут быть добавлены в query запроса. Эти параметры могут быть обязательными или необязательными. Вкладка может совсем не иметь параметров — значит, запрос их не требует. Для добавления параметра в запрос, установите флаг и введите значение в столбце VALUE. Если вы передумали указывать значение параметра, снимите флаг — иначе запрос не будет отправлен.
  6. На вкладке Auth укажите параметры авторизации. Без них запрос не будет отправлен. В Type выберите Basic Auth и введите логин (email) и пароль вашего аккаунта Bot.one в полях Username и Password.
  7. Некоторые методы предполагают отправку JSON в теле запроса. Для этого перейдите на вкладку Body, выберите в поле слева тип данных raw, а справа — JSON. Впишите json или измените данные в уже написанном.
  8. Теперь запрос готов к отправке. Нажмите кнопку Send.

Запрос в Postman

Figure 1. Запрос в Postman

Запрос будет отправлен на сервер с теми параметрами, которые вы указали. В нашем API вы работаете с реальными данными, поэтому все изменения отобразятся на вашем инстансе: если запрос должен начать диалог, то при успешном запросе диалог будет начат и добавлен на сервер.

Полученный ответ появится в нижней части страницы. Вы увидите код ответа и его содержимое. При успешном запросе в ответе вернуться данные, при неуспешном — описание ошибки, которое поможет вам исправить запрос, чтобы отправить его заново.

Жизнь — это движение! А тестирование — это жизнь 🙂

Давайте рассмотрим на примере, который вы можете прямо сейчас взять и повторить. Показывать я буду на системе Users, которая находится в открытом доступе. А запросы будем посылать через бесплатный инструмент Postman.

Для передачи картинки в Users есть метод AddAvatar. Как его вызвать:

1. Создать новый запрос, тип POST

2. Прописать URL. Он состоит из двух частей:

  • ссылка на метод — http://users.bugred.ru/tasks/rest/addavatar/
  • параметр email — ?email=

Параметр из URL автоматически появляется на вкладке Params в постмане:

3. Указать тело запроса.

Так как email мы уже передали, в теле отправляем только второй параметр из ТЗ: avatar.
Указываем название параметра и справа в углу переключаем тип параметра — с Text на File.

Теперь в value не строка ввода, а возможность выбрать файл.

Выбираем файл формата jpg и весом 10 кб

4. Отправить запрос, нажать на кнопку «Send»

Ну вот и все! Теперь можно проверить в интерфейсе — и правда, аватарка установилась, ура!

Если хочется ее удалить тоже через Postman, используйте метод DeleteAvatar.

PS — статья написана в помощь студентам моего курса «Тестирование REST API»

Как пользоваться программой Postman

Как пользоваться Postman

Программа Postman предназначена для тестирования работы API, а также для отправки запросов POST и GET. В отличие от похожей утилиты curl, она имеет графический интерфейс, поэтому легко осваивается даже новичками.

Скачать ее можно с официального сайта – есть дистрибутивы для Windows, macOS и Linux. На последней платформе есть возможность установки утилиты напрямую из Центра приложений. В любом случае использование начинается с регистрации бесплатного аккаунта.

Программа ПостманКак тестировать API

Тестирование интерфейса API проводится путем анализа точности выходных данных в зависимости от подаваемых при входном запросе. Этим и занимается Postman: он составляет и отправляет их на указанные URL, получает обратно и сохраняет в базе данных. При желании возможно сохранение типовых запросов в коллекции (для быстрого доступа) и создание для них разного окружения.

Комьюнити теперь в Телеграм
Подпишитесь и будьте в курсе последних IT-новостей

Интерфейс приложения Postman

Главное окно программы разделено на четыре области. Разделение на блоки идет по функционалу, что заметно упрощает настройку и управление. Если опыта работы с такими утилитами нет, рекомендуется не трогать непонятные пункты, а пользоваться только простыми (их мы и рассмотрим).

Интерфейс приложения Postman

  1. Верхняя панель – здесь расположены основные настройки программы.
  2. Боковая панель – сюда выделены запросы, выполненные ранее или сохраненные в качестве «избранного».
  3. Панель вкладок – инструмент переключения между разными запросами.
  4. Рабочая область – все базовые настройки отправленного запроса, перечень возвращаемых по нему данных.

Выполнение запроса

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

Выполнение запроса в Postman

В нижней части страницы появится код страницы (HTML). Здесь имеется несколько вкладок:

  1. Body – данные, содержащиеся в теле запроса.
  2. Cookie – информация, записанная сервером.
  3. Headers – заголовки, которые были возвращены.

На первой вкладке, где отображается тело запроса, есть выбор нескольких вариантов отображения. Так, Pretty интересна для получения JSON-данных – программа отформатирует их в достаточно удобном формате. Если выбрать режим Raw, информация будет представлена «как есть», без каких-либо изменений. Вкладка Preview отображает сайт в том виде, в котором он открывается в браузере.

Передача параметров в Postman

В программу встроен собственный сервис API, который и используется для тестирования внешних ресурсов. Чтобы обратиться к нему, следует кликнуть на «плюсик», выбрать из выпадающего списка тип запроса GET, а вместо домена вставить ссылку на сервис https://postman-echo.com/get.

Передача параметров

Затем нужно открыть вкладку Params и в разделе Query Params под строкой Key внести название отправляемого параметра. Следом под строкой Value нужно написать еще одно значение. Количество не ограничено – пользователь вносит столько параметров, сколько ему нужно для тестирования конкретного API.

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

Передача параметров формы и заголовков

В отличие от GET, запрос POST передается не в ссылке на сайт, а в теле запроса. Чтобы проверить работоспособность программы, используется обращение к адресу https://postman-echo.com/post. Во время настройки на вкладке Body нужно включить режим form-data, затем внести схожие параметры и нажать на кнопку Send.

Передача параметров формы и заголовков Postman

Если взаимодействие по API требует передачи токенов авторизации, понадобится привлечь к этому HTTP-заголовки. Такой формат работы используется, например, в движке Xenforo, написанном на PHP для развертывания форумов. Для передачи в заголовке какой-либо информации нужно зайти на вкладку Headers и добавить любое имя со значением (на выбор пользователя). После отправки информации внизу окна будет отображен ответ сервера.

Передача файла в Postman

Программа Postman позволяет отправлять файлы, а не только текстовые данные, как в приведенных выше примерах. Чтобы сделать это, достаточно перейти на вкладку Body, зайти в раздел form-data и выбрать тип параметра File (вместо Text).

Передача файла Postman

Затем следует нажать на кнопку Select File и выбрать отправляемый файл. После отправки данных на сервер он будет виден в секции files. Ничего сложного в процедуре нет, приведенная выше схема работает со всеми типами файлов.

Авторизация Basic Auth

Если на сайте используется защита с авторизацией по методу Basic Auth, программа Postman дает возможность проверить ее прохождение. В качестве примера обращение будет осуществляться по адресу https://postman-echo.com/basic-auth. Чтобы пройти проверку, понадобится отправить значение имени пользователя postman и пароль доступа password.

Авторизация Basic Auth

Далее в рабочей области надо открыть вкладку Authorization, в разделе Type выбрать значение Basic Auth и заполнить имя с паролем. Если процедура пройдена успешно, тестовый сервер вернет ответ authenticated: true.

История и коллекция запросов

При систематическом использовании одних и тех же запросов будет проще отправлять их из заранее составленного списка. Программа Postman упрощает задачу за счет сохранения истории, в которой содержатся все внесенные параметры. Пользователю лишь остается кликнуть по нужному пункту и при необходимости заменить URL.

История и коллекция запросов

Наиболее важные запросы рекомендуется сохранять в коллекции. Чтобы сделать это, достаточно нажать на кнопку New на верхней панели, выбрать пункт Collection и ввести название (на выбор пользователя). Теперь любой запрос будет добавлен в перечень нажатием на кнопку Create и, после заполнения всех данных, кнопку Save (до отправки на сервер).

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *