Retrofit 2 file upload

Retrofit 2: Загружаем файлы на сервер

В этом уроке мы рассмотрим загрузку файлов на сервер с использованием замечательной библиотеки Retrofit 2.

Введение

При использовании Retrofit 2 для загрузки файлов на сервер, вы можете использовать классы RequestBody или MultipartBody.Part из библиотеки OkHttp.

Давайте посмотрим на интерфейс API для загрузки файлов:

Поле description — это строка, обернутая в RequestBody. Поле file — это вторая часть запроса, которая, собственно, и представляет загружаемый на сервер файл. Далее вы увидите, как корректно создать этот файл.

Клиентский код

На данный момент мы создали интерфейс, описывающий наше API для загрузки файлов.

Следующий кусок кода показывает, как загрузить файл на сервер (путь к файлу передается в параметре fileUri):

Приведенный выше код показывает, как инициализировать содержимое запроса (body и description), и как загружать файлы. Как было сказано ранее, RequestBody — это класс из OkHttp, используемый для передачи описания.

У метода create() есть два параметра: тип контента и сам контент.

Внимательнее используйте Content-Type

При отправке запроса обращайте внимание на тип контента. Если вы используете Interceptors, и устанавливаете в них тип контента «application/json», то у вас могут возникнуть проблемы, если сервер неправильно воспримет контент в запросе. При передаче файлов указанным выше способом заголовок Content-Type должен содержать значение «multipart/form-data».

 

Эта статья является переводом статьи FutureStudio Retrofit 2 — How to Upload Files to Server

 

 

GET YOUR EMAIL UPDATES

We send out our lovely email newsletter with useful tips and techniques, recent articles and upcoming events. Thousands of readers have signed up already. Get a free WordPress eBook now.
E-Mail