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

How to send FormData with MultiPart request using retrofit2?

我正在开发一个 android 应用程序,我需要从 android 应用程序将多张图片上传到 php 服务器,目前我遇到了几个问题,如下所示:

1) 我们能否将字段参数与图像一起作为多部分请求上传?如果可以,正确的请求格式应该是什么?

2 ) 以下是从 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 参数发送。

我找到了问题的解决方案。基本上我的问题是发送包含多个图像的表单数据,它存在于 Retrofit2 中。

所以,如果有人正在寻找相同类型的要求,那么这里的链接可能会对您有所帮助:

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

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