如何使用retrofit2发送带有MultiPart请求的FormData?

时间:2018-06-05 12:37:36

标签: android retrofit2 image-uploading multipartform-data url-encoding

我正在开发一个Android应用程序,我需要从Android应用程序&上传多个图像到php服务器目前我几乎没有问题如下:

 1)我们可以将字段参数与图像一起传递以作为Multipart请求&如果是这样,那么正确的请求格式应该是什么?

 2)低于1是从Android上传多个图像的正确方法吗?

 3)顺利上传多张图片的正确策略应该是什么?

这是我的试验性代码,我认为这有助于任何人了解我想要实现的目标。

@Multipart
@FormUrlEncoded
@POST(AppConstants.BASE_URL+AppConstants.POST_AD)
Observable<Response<PostedAd>> postAd(@Header(AppConstants.HEADER_ACCESS_TOKEN) String headerToken,@Part("images[]") RequestBody files, @Field(AppConstants.FIELD_AD_TITLE) String adTitle, @Field(AppConstants.FIELD_AD_DESCRIPTION) String adDesc,@Field(AppConstants.FIELD_AD_ADDRESS) String adAddress,@Field(AppConstants.FIELD_AD_CITY) String city,@Field(AppConstants.FIELD_AD_STATE) String state,@Field(AppConstants.FIELD_AD_ZIPCODE) String zipcode,@Field(AppConstants.FIELD_AD_CONTACT_NUMBER) String contactNumber,@Field(AppConstants.FIELD_AD_TYPE) String adType,@Field(AppConstants.FIELD_AD_BUDGET_RATE) String adbudgetOrRate);

注意: REST API的设计方式使我无法将所有字段作为Single Body参数发送。

1 个答案:

答案 0 :(得分:0)

我得到了解决问题的方法。基本上我的问题是发送带有多个图像的表单数据。它存在于Retrofit2中。

所以,在这里寻找相同类型要求的任何人都可以帮助您:

Send Request Parameters with MultiPart Request using PartMap
Upload multiple images using Retrofit2

将这两种解决方案结合在一起&amp;您可以发送请求参数以及多个文件。