如何在改造2 beta 4中使用单个多部分请求上传多个图像?

时间:2016-02-24 11:28:32

标签: android multipart retrofit2

我正在使用Retrofit 2.0.0-beta 4。我正在尝试使用单个multipart request上传多个图片:

API服务方法如下所示:

 @Multipart
@POST("/feedback/add")
Call<ApiResponse> sendFeedbackWithImage(
        @Part("token") RequestBody token,
        @Part("subject") RequestBody subject,
        @Part("message") RequestBody message,
        @PartMap() Map<String, RequestBody> images);

我面临的问题是我在客户端没有收到错误,请求的日志如下:

 02-24 16:25:57.961 9918-14402/com.listup.android D/OkHttp: Content-Type: multipart/form-data; boundary=ca30d2f6-1415-4437-89ae-71acd0a0a7cd
 02-24 16:25:57.966 9918-14402/com.listup.android D/OkHttp: ������JFIF����������������C��: %# , #&')*)-0-(0%()
(����C   (((((((((((((((((((((((((((((((((((((((((((((((((((����0d"���
���������������������� 
02-24 16:25:57.966 9918-14402/com.listup.android D/OkHttp: ������������}��!1AQa"q2���#B��R��$3br� 

问题是我想将multiple images发送到数组,而图像数量不固定。在服务器端,它们将成为用户对象元素的一部分,如下所示:

 {
  "user":{
  "name":"Mukeka",
  "email":"abc@gmail.com",
  "images":[
     {
        "index":0,
        "url":"http://url.com/1.jpg"
     },
     {
        "index":1,
        "url":"http://url.com/2.jpg"
     }
  ]
 }
}

1 个答案:

答案 0 :(得分:1)

Call<ApiResponse> sendFeedbackWithImage(@PartMap() Map<String, RequestBody> descriptions,
                         @Part List<MultipartBody.Part> images);

使用partmap添加参数和列表以添加图像