android - 如何通过改造发送 List<String> ?

标签 android retrofit2

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

@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);

为了在我的 fragment 中发送我的成员,我更改了我的 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”]

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

我做错了什么?

最佳答案

使用类似的东西。

@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);

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

关于android - 如何通过改造发送 List<String> ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53832007/

相关文章:

android - 如何播放媒体文件

android - java.lang.BootstrapMethodError : Exception from call site #4 bootstrap method , 初始化改造时

android - 在继续异步之前等待 retrofit2 完成的最佳方法

java - 在同一对象中具有链接图像的 Firebase 实时数据库

java - Android中使用特殊字符验证手机号码

java - 改造2 : Post multiple files with part names along with @FormUrlEncoded formData

java - 如何使用注解通过改造 2 在 android 中解析动态 json

java - 使用 Retrofit Android 发送 ArrayList<String> 作为一部分

android - 如何通过应用程序的 Intent 调用 PDF Viewer 的 .apk 文件?

android - RecyclerView 在 ConstraintLayout 中将其下方按钮推出屏幕