Android使用 Retrofit 2.X 上传多文件和多表单示例
更新时间:2017年08月30日 09:02:22 作者:陪你唠嗑
本篇文章主要介绍了Android使用 Retrofit 2.X 上传多文件和多表单示例,具有一定的参考价值,有兴趣的小伙伴一起来了解一下
retrofit post请求上传表单和文件最重要的就是就是去构建RequestBody,今天为大家带来一种超级简单的上传方式
Body方式:
1、Retrofit接口RetrofitInterface
@POST(URLConstant.URL_PATH) Flowable<UploadImgBean> upload(@Body RequestBody Body);
2、Retrofit的配置
private static RetrofitInterface getRetrofitInterface(String baseUrl) {
if (retrofitInterface == null) {
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(baseUrl)
.addConverterFactory(GsonConverterFactory.create())
// .addConverterFactory(ScalarsConverterFactory.create()) //string
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.build();
retrofitInterface = retrofit.create(RetrofitInterface.class);
}
return retrofitInterface;
}
3、构建body
public static Flowable<UploadImgBean> upload(List<File> fileList) {
//构建body
//addFormDataPart()第一个参数为表单名字,这是和后台约定好的
MultipartBody.Builder builder = new MultipartBody.Builder()
.setType(MultipartBody.FORM)
.addFormDataPart("username", "name")
.addFormDataPart("phone", "phone")
//注意,file是后台约定的参数,如果是多图,file[],如果是单张图片,file就行
for (File file : fileList) {
//这里上传的是多图
builder.addFormDataPart("file[]", file.getName(), RequestBody.create(MediaType.parse("image/*"), file));
}
RequestBody requestBody = builder.build();
return getRetrofitInterface(URLConstant.URL_BASE).upload(requestBody);
}
4、开始执行上传
HttpUtils.upload(mUploadFileList)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new DisposableSubscriber<UploadImgBean>() {
@Override
public void onNext(UploadImgBean uploadImgBean) {
Log.i(TAG, "onNext: " );
}
}
@Override
public void onError(Throwable throwable) {
Log.i(TAG, "onError: --->" + throwable.getMessage());
}
@Override
public void onComplete() {
Log.i(TAG, "onComplete: ");
}
});
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
相关文章
Android 重写ViewGroup 分析onMeasure()和onLayout()方法
这篇文章主要介绍了Android 重写ViewGroup 分析onMeasure()和onLayout()方法的相关资料,需要的朋友可以参考下2017-06-06
详解Flutter Image组件如何处理图片加载过程中的错误
在Flutter中,Image组件可以通过监听加载过程中的错误来处理图片加载过程中的错误,本文小编将给大家详细介绍了Flutter Image组件是如何处理图片加载过程中的错误,文中有详细的代码示例供大家参考,需要的朋友可以参下2023-10-10
Android中EditText光标在4.0中的bug及解决方法
这篇文章主要介绍了Android中EditText光标在4.0中的bug及解决方法,简单分析了Android4.0版本中EditText光标消息的原因及相应的解决方法,需要的朋友可以参考下2016-01-01
Android RecyclerView设置下拉刷新的实现方法
这篇文章主要介绍了Android RecyclerView设置下拉刷新的实现方法,希望通过本文通过SwipeRefreshLayout方式实现下拉刷新,需要的朋友可以参考下2017-10-10


最新评论