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

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

本篇主要包含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链接Retrofit+Rxjava-Network

感谢老铁们的批阅,祝大家涨薪不光头,脱单不再愁,2020新年快乐!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值