Rxjava + Retrofit2 post图片上传

本文图片上传感觉比网上找的详细很多,不信亲测项目
地址:
https://github.com/HarryXR/RetrofitRxjavaDemo

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

  • 说说多图上传

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

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

MultipartBody参数封装- 添加一张图片

RequestBodyrequestBody=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 中我测试的是更换头像,只有一张图片,不过用的是多图上传的方法,有兴趣的可以试试

推荐阅读更多精彩内容