美文网首页
Retrofit+Rxjava网络请求,精简详细版

Retrofit+Rxjava网络请求,精简详细版

作者: 啟风了 | 来源:发表于2020-01-18 10:29 被阅读0次

    在闲暇时间撸了这段代码,其实早就有这种想法了,奈何自己太懒,一直拖到现在,还请各位老铁见谅。写这个也算是自己在工作中的一些总结。踩了很多坑,希望对老铁们有所帮助,话不多说,开整!

    本篇主要包含POST、GET请求,不同的传参方式,以及上传单文件(单图)、多文件(多图)、数组,以及添加签名、公共参数等。

    app的build文件中配置

    获取头像 

    1.1 map方式

     需要注意map方式要添加@Multipart和@PartMap

    map是参数的集合,需要上传的参数根据定义的map来上传多个参数。

    Constant.BASE_URL:baseUrl,这里说明一下,baseurl要以“/”结尾,不然会出错

    其中onSubscribe():方法可忽略,也可添加加载框 

    onNext():方法是请求接口并成功返回后执行的,在这里进行回调后的操作

    onError():方法是错误返回,可能会出现json解析错误,404等错误

    onComplete():是请求完成后执行的方法,这里可以关闭加载框

    MeBean:是后台返回json的实体类(具体参考demo)

    1.2 get请求 

     需要注意GET对应参数要以@Field形式

    freeweather是baseUrl后面需要拼接的最后一段,在之后就是具体需要上传的参数了,如下图

    1.3 post请求  

    需要注意POST要添加@FormUrlEncoded对应参数要以@Field形式

    1.4 上传数组/集合

    需要注意数组参数后面一定要加"[ ]"

    1.5 上传图片(单张)

    map是一起上传的其他参数,如uid、token等

    file是上传的文件

    具体的操作流程,如下图。至于怎么选择图片文件,demo中也有方法,需要了解的亲,可以在demo中查看


    1.6 上传图片(多张)

    和上面上传单张图片几乎一样,只是上传多张图片的files换成了List<>形式。上传多图的方式,其实就是把选择的图片进行了遍历,如下图

    “add_pics[]” 这个参数名,是后台定义的参数名,注意参数名后面也要添加"[ ]"

    2.1 添加公共参数

    在HttpManager里的getApiService()中放开addInterceptor(new AddQueryParameterInterceptor()),然后添加公共参数即可

    formBody的addEncoded()中添加签名和公共参数 (key,value)形式

    2.2 日志打印

    “我是如图”中所示,log()中的message是后台返回的json,在这里可以查看后台返回的参数,以及错误日志

    2.3 超时设置

    有些时候可能需要设置网络连接时间,在“我是如图”中的client中,设置网络请求超时时间

    总结

    demo中涵盖了日常用到的几乎所有请求方式,如果还有其他疑问可添加笔者QQ:499164592,备注简书即可。

    如果对Retrofit的使用不太懂的话,可自行百度,祝君学习愉快

    项目中应用到的三方库superTextView ,XPopup,PictureSelector 可参考demo中的链接

    最后附上demo链接https://github.com/XD-Z/RetrofitNetwork

    如果本文对你还有所帮忙,还请点个赞支持一下,感谢~

    相关文章

      网友评论

          本文标题:Retrofit+Rxjava网络请求,精简详细版

          本文链接:https://www.haomeiwen.com/subject/vktqzctx.html