0

我是Android新手& Http並嘗試使用Retrofit2創建圖片上傳任務。我正在使用給出的例子hereOkHttp3庫的RequestBody和MultipartBody之間的區別?

在這個例子中,作者解釋了爲什麼我們應該使用RequestBody或MultipartBody。我無法理解它們之間的區別,以及我應該如何上傳少量標籤(字符串)與我的圖像。

誰能幫忙的意思筆者按:

的描述只是一個RequestBody實例中包裹着一個字符串值。其次,請求中還有另一個@Part:實際的文件。我們使用MultipartBody.Part類,它允許我們發送除了二進制文件數據以外的實際文件名。

+0

'MultipartBody.Part'是一個嵌套類和'MultipartBody '似乎是'RequestBody'的擴展,那麼混淆是什麼? –

回答

1

MultipartBody IS-A(具體實現的)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 /字符串請求而MultipartBody可用於文件請求(圖像,文檔..)