首页 > 解决方案 > 如何发送列表与改造?

问题描述

我正在向服务器发送多部分请求,这是我的界面:

@Multipart
@POST("v1/group/new")
Call<MyResponse> newGroup(
        @Header("token") String token,
        @Part MultipartBody.Part photo,
        @Part("title") RequestBody subject,
        @Part("members") List<RequestBody> members);

为了在我的片段中发送我的成员,我将我List<String>的更改List<RequestBody>为如下:

List<RequestBody> members = new ArrayList<>();
for(int i = 0;i < membersId.size(); i++){
    members.add(RequestBody.create(MediaType.parse("text/plain"),membersId.get(i)));
}

它正在与多个成员合作!但是当我的列表中有一个字符串时,改造不会将我的成员作为列表发送!!!例如:

我想发送这样的字符串数组:

[“项目 1”、“项目 2”、“项目 3”]

我的代码适用于此,但是当只有一项时,改造会发送:

“项目 1”

而不是 ["item1"]

通过改造多部分发送字符串数组的正确方法是什么?

我究竟做错了什么?

标签: androidretrofit2

解决方案


使用这样的东西。

@Multipart
@POST("v1/group/new")
Call<MyResponse> newGroup(
        @Header("token") String token,
        @Part MultipartBody.Part photo,
        @Part("title") RequestBody subject,
        @Part("members[]") List<RequestBody> members);

请记住,您必须添加[]到您的成员参数:)。


推荐阅读