我有一个整数 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(使用前将#替换为@)