Map<String, RequestBody> files = new HashMap<>(); final FlaskClient service = ServiceGenerator.createService(FlaskClient.class); for (int i = 0; i < imagesList.size(); i++) { File file = new File(imagesList.get(i).path); files.put("file" + i + "\"; filename=\"" + file.getName(), RequestBody.create(MediaType.parse(imagesList.get(i).mimeType), file)); } Call<UploadResult> call = service.uploadMultipleFiles(files); call.enqueue(new Callback<UploadResult>() { @Override public void onResponse(Call<UploadResult> call, Response<UploadResult> response) { if (response.isSuccessful() && response.body().code == 1) { Toast.makeText(MainActivity.this, "上传成功", Toast.LENGTH_SHORT).show(); Log.i("orzangleli", "---------------------上传成功-----------------------"); Log.i("orzangleli", "基本地址为:" + ServiceGenerator.API_BASE_URL); Log.i("orzangleli", "图片相对地址为:" + listToString(response.body().image_urls,',')); Log.i("orzangleli", "---------------------END-----------------------"); } } @Override public void onFailure(Call<UploadResult> call, Throwable t) { Toast.makeText(MainActivity.this, "上传掉败", Toast.LENGTH_SHORT).show(); } }); } 个中构建上传多文件的办法的参数较为关键,MediaType.parse(imagesList.get(i).mimeType)获取图片的mimeType,如不雅指定缺点,可能会导致上传掉败。
- Map<String, RequestBody> files = new HashMap<>();
- final FlaskClient service = ServiceGenerator.createService(FlaskClient.class);
推荐阅读
让你的设计更加高效便捷的5款原型设计工具
它是一款快速原型的设计软件,由美国加利福利亚的Balsamiq工作室推出,它真正抓住了原型设计的核心和均衡点-既能设计草图,又能较好地进入到日常平凡团队工作的流程和对象。它具有极其丰富>>>详细阅读
本文标题:Android用Retrofit 2实现多文件上传实战
地址:http://www.17bianji.com/lsqh/34876.html
1/2 1