1
我正在使用OKHTTP並使用Multipart將映像發送到服務器。 我的代碼如下:將multipart與for循環一起使用
RequestBody requestBody = null;
for (int i = 0; i < noOfItems; i++) {
requestBody = new MultipartBuilder().type(MultipartBuilder.FORM)
.addFormDataPart("func", "savepacket")
.addFormDataPart("userid", String.valueOf(mLoginPref.getInt("userId", 1)))
.addFormDataPart("packname", strPackname)
.addFormDataPart("image", str + ".png", RequestBody.create(MediaType.parse("image/png"), imagePath))
.addFormDataPart("count", String.valueOf(noOfItems))
.addFormDataPart("item_name" + String.valueOf(i + 1), al.get(i).getStrItemName())
.addFormDataPart("tag_item" + String.valueOf(i + 1), al.get(i).getStrItemTag())
.addFormDataPart("note" + String.valueOf(i + 1), al.get(i).getStrComment())
.addFormDataPart("image" + String.valueOf(i + 1), al.get(i).getStrItemName() + ".png", RequestBody.create(MediaType.parse("image/png"), al.get(i).getStrItemImage()))
.build();
}
mstrQRResponse = HttpUtils.postRun("pack", requestBody);
從代碼,(人是ArrayList的),你可以看到,我要送單PACKNAME多個項目,這就是爲什麼我使用的for循環。
但是,實際上只有最後一個項目被保存在服務器上,因爲requestBody在for循環中被覆蓋。
如何將所有項目添加到requestbody中發送?
在for循環中,每次創建'requestBody'對象時,以及在調用'postRun()'之後。這就是爲什麼最後一項正在上傳到服務器。 –
雅,多數民衆贊成ri8 ..但我怎麼能解決它? –