Android 使用多部分for循环
我使用OKHTTP和Multipart将图像发送到服务器。 我的代码如下:Android 使用多部分for循环,android,multipart,okhttp,Android,Multipart,Okhttp,我使用OKHTTP和Multipart将图像发送到服务器。 我的代码如下: RequestBody requestBody = null; for (int i = 0; i < noOfItems; i++) { requestBody = new MultipartBuilder().type(MultipartBuilder.FORM) .addFormDataPart("func", "savepack
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);
RequestBody RequestBody=null;
for(int i=0;i
从代码中,(al是ArrayList)您可以看到,我必须使用单个Packname发送多个项目,这就是我使用for循环的原因
但,实际上只有最后一项保存在服务器上,因为requestBody在for循环中获得覆盖
如何通过将所有项目添加到requestbody来发送 试试这个,也许会对你有帮助
MultipartBuilder multipartBuilder = new MultipartBuilder().type(MultipartBuilder.FORM);
RequestBody requestBody = null;
for (int i = 0; i < noOfItems; i++) {
multipartBuilder
.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()));
}
requestBody = multipartBuilder.build();
mstrQRResponse = HttpUtils.postRun("pack", requestBody);
MultipartBuilder MultipartBuilder=new MultipartBuilder().type(MultipartBuilder.FORM);
RequestBody RequestBody=null;
for(int i=0;i
在for循环内部,每次创建requestBody的对象时,然后调用postRun()
。这就是为什么最后一个项目正在上载到服务器。是的,这是ri8。。但是我怎么解决呢?谢谢兄弟。。已在服务器上成功添加所有项目。