竹节杖,江藤つかさ,放学我当家第一部
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 apk 项目一键打包并上传到蒲公英的实现方法
Android 自定义LineLayout实现满屏任意拖动功能的示例代码
android 限制某个操作每天只能操作指定的次数(示例代码详解)
Android 集成 google 登录并获取性别等隐私信息的实现代码
网友评论