RequestBody和OkHttp3库的MultipartBody之间的区别?

时间:2016-07-17 16:56:00

标签: android image-uploading multipartform-data retrofit2 okhttp3

我不熟悉Android& Http并尝试使用Retrofit2创建图像上载任务。我使用的是给定here的示例。

在这个例子中,作者解释了为什么我们应该使用RequestBody或MultipartBody。我无法理解差异以及如何使用我的图像上传少量标签(字符串)。

任何人都可以通过以下方式帮助作者:

  

描述只是一个包含在RequestBody实例中的字符串值。其次,请求中还有另一个@Part:实际文件。我们使用MultipartBody.Part类,它允许我们发送除了二进制文件数据之外的实际文件名和请求。

3 个答案:

答案 0 :(得分:1)

MultipartBody IS-A(具体实施)RequestBody

public final class MultipartBody extends RequestBody

主要区别在于,与List<Part> parts

中没有RequestBody相比,为类提供了RequestBody

FormBody本身就是抽象的,这意味着你不能直接创建一个。当你从一个方法中得到一个时,它就是它的一个后代,比如NSNotificationCenter.defaultCenter().postNotificationName("ObjectDeleted", object: ["object" : object])

您可以compare source code了解确切的差异。

答案 1 :(得分:1)

简单来说, RequestBody 可用于json / String请求,而 MultipartBody 可用于文件请求(图像,文档..)

答案 2 :(得分:0)

RequestBody :以简单方式向服务器发送数据时使用。

MultipartBody :在将POST请求中的数据分解为不同的离散类型并发送到服务器时使用。