定义接口:
/**
* 上传图片
*/
@Multipart
@POST("/xxxx/upload")
Observable<UploadImgBean> upload(@Part() MultipartBody.Part file, @PartMap Map<String, RequestBody> map);
- @Part() MultipartBody.Part file 上传单个文件,也可以上传多个 --@PartMap Map<String, MultipartBody.Part> map
- @PartMap Map<String, RequestBody> map 请求参数 <>里面最后不要<String,String> 字符串会额外增加一组引号带来的异常
请求:
public void upload(File file, RxObservable rxObservable) {
RequestBody requestBody = RequestBody.create(MediaType.parse("image/png"), file);
MultipartBody.Part part = MultipartBody.Part.createFormData("file", file.getName(), requestBody);
Map<String, RequestBody> map = new HashMap<>();
map.put("token",RequestBody.create(null, String.valueOf(TokenUtils.getToken())));
apiService()
.upload(part,map)
.compose(RxTransformerUtils.switchSchedulers(this))
.subscribe(rxObservable);
}
retrofit2+rxjava2封装的Android mvp框架