Rxjava + Retrofit2 多图上传

本文图片上传感觉比网上找的详细很多,不信亲测

项目地址:https://github.com/HarryXR/RetrofitRxjavaDemo

Demo只展示了Get请求因为post 上传图片用的公司的Url,不便展示,但已封装多图上传,修改baseurl 和参数即可使用

  • 说说多图上传

使用MultipartBody,封装多张图片以及所需参数


    @POST("face")
    Observable<BaseResponse<PostResponse>> upload(@Body MultipartBody imgs);

MultipartBody参数封装

  • 添加一张图片
RequestBody requestBody=  RequestBody.create(
     MediaType.parse("multipart/form-data"), file);
MultipartBody.Builder builder = new MultipartBody.Builder();
builder.setType(MultipartBody.FORM);
builder.addFormDataPart("file", file.getName(), requestBody);
MultipartBody body=builder.build();//调用即可
  • 多图上传

简单说就是循环添加图片

for (File f : files)
 {
     RequestBody requestBody = RequestBody.create(
  MediaType.parse("multipart/form-data"), f);
     builder.addFormDataPart("file", f.getName(), requestBody);

  }

demo 中我测试的是更换头像,只有一张图片,不过用的是多图上传的方法,有兴趣的可以试试

你可能感兴趣的:(android,图片上传,Retrofit2)