如何将整数 ArrayList 添加到 MultipartBody

2024-01-20

我有一个整数 ArrayList,需要将其放入 MultipartBody.Builder 中。我尝试过使用 .addFormDataPart 的不同方法,甚至尝试将 arraylist 转换为 JSONObject,然后将 JSONObject 转换为字符串,但我的服务器会返回如下错误:

{"tags":["类型不正确。预期 pk 值,收到 str。"]}

我在服务器上的json格式是这样的

{"id":1, 
 "tags" : [
           {"id":1}, 
           {"id":2}
          ]
}

在android studio中我试图放入一个包含标签id的整数ArrayList,如下所示

okhttp3.RequestBody fileRequestBody =  RequestBody.create(MediaType.parse("text/csv"), file); 

okhttp3.RequestBody requestBody = new MultipartBody.Builder()
                        .setType(MultipartBody.FORM)
                        .addFormDataPart("id", projecID)
                        .addFormDataPart("tags", tagIDArray")
                        .addFormDataPart("file", "file", fileRequestBody).build();

所以我已经弄清楚了,如果将来有人遇到这个问题,我将发布答案。

非常简单,您可以迭代整数数组,并通过 .addFormDataPart("tags", tagIDArray.get(i)) 将每个整数添加到 MultipartBody.Builder 中,其中 i 是索引。这是我现在在我的项目中使用的工作代码。

o

okhttp3.MultipartBody.Builder requestBodyBuilder = new MultipartBody.Builder()
.setType(MultipartBody.FORM)
.addFormDataPart("id", projecID)
.addFormDataPart("file", "file", fileRequestBody");

for(int i=0; i<tagIDdArray.size(); ++i){
    requestBodyBuilder.addFormDataPart("tags", tagIDArray.get(i));
}

RequestBody requestBody = requestBodyBuilder.build()

然后你可以在你的请求中正常使用 requestbody ,它将作为一个数组工作

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将整数 ArrayList 添加到 MultipartBody 的相关文章

随机推荐