0

Я новичок в Android & Http и пытается создать задачу загрузки изображений с помощью Retrofit2. Я использую приведенный пример here.Разница между RequestBody и MultipartBody библиотеки OkHttp3?

В этом примере автор объяснил, почему мы должны использовать RequestBody или MultipartBody. Я не могу понять разницу и как загрузить несколько тегов (строк) с моим изображением.

Может кто-нибудь помочь, что автор подразумевает под:

Описание является только строковое значение, завернутые в RequestBody экземпляра. Во-вторых, в запросе есть еще один @Part: фактический файл. Мы используем класс MultipartBody.Part, который позволяет нам отправить фактическое имя файла, кроме данных двоичного файла, с запросом.

+0

'MultipartBody.Part' является вложенным классом и' MultipartBody 'похоже, является расширением' RequestBody', так что это путаница? –

ответ

1

MultipartBody IS-А (конкретная реализация) RequestBody

public final class MultipartBody extends RequestBody 

Основное отличие заключается в том, что List<Part> parts предоставляется класса по сравнению с не имеющей один в RequestBody

самой RequestBody является абстрактным, что означает, что вы не можете создать его напрямую. Когда вы получаете один из метода, это один из его потомков, например FormBody

compare source code для точных различий.

+0

, что было полезно знать :) – SpyZip

1

RequestBody: используется при отправке данных на сервер простым способом.

MultipartBody: используется при разрыве данных в запросе POST на разные дискретные типы и отправляется на сервер.

+0

Для content-type: application/json мы просто отправляем объект модели, который автоматически преобразуется в Json и отправляется через OkHttp. Всегда ли OkHttp всегда конвертирует все в RequestBody и затем отправляет его? – user2601981

1

Проще говоря RequestBody может быть использован для запроса JSON/String, а MultipartBody может быть использован для запроса файла (изображения, документы ..)

Смежные вопросы