retrofit2.0传多⽂件以及附加参数1、传单独的⽂件service如下:
@Multipart
@POST
Observable<CommonBean> uploadFileService(
@Url String url,
@Part MultipartBody.Part fileInfo
);
2、传单独的数组⽂件service如下:
@Multipart
@POST
Observable<CommonBean> uploadFilesService(
@Url String url,
@Part MultipartBody.Part[] fileInfos
);
3、传⽂件以及参数的service如下:
@Multipart
@POST
Observable<CommonBean> uploadUserInfo(
@Url String url,
@PartMap Map<String, RequestBody> params,
@Part MultipartBody.Part[] files,
@Part MultipartBody.Part file
)
;android retrofit
接⼝定义完成后再构建⼀下参数即可: 例如:
//普通参数
HashMap<String, RequestBody> map = new HashMap<>();
map.put("userId", toRequestBody(userId+""));
//⽂件数组
MultipartBody.Part filePart[] = new MultipartBody.Part[2];
RequestBody requestFile = ate(MediaType.parse("multipart/form-data"), files[0]);
filePart[0] = ateFormData("file", files[0].getName(), requestFile);
RequestBody requestFile1 = ate(MediaType.parse("multipart/form-data"), files[1]);
filePart[1] = ateFormData("file", files[1].getName(), requestFile1);
/
/单个⽂件
RequestBody requestFilep = ate(MediaType.parse("multipart/form-data"), fileSingle);
MultipartBody.Part filePartuserp = ateFormData("fileSingle", Name(), requestFilep); //toRequestBody⽅法
private RequestBody toRequestBody(String value) {
RequestBody requestBody = ate(MediaType.parse("text/plain"), value);
return requestBody;
}
//最后发送请求 这块使⽤到了Rxjava
service.uploadParamAndFiles(Constants.URL, map,filePart,filePartuserp)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(observer);
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论