
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使用 Retrofit 2.X 上传多文件和多表单示例全部内容,希望文章能够帮你解决Android使用 Retrofit 2.X 上传多文件和多表单示例所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)