Okhttp和Retrofit的出现已经有很长一段时间了,一直都没有去了解过它们,现在正好有一个机会去了解和使用,下面是我对初学Okhttp和Retrofit的一些简要笔记。
一、OKhttp
OKhttp一个处理网络请求的第三方库,是安卓端最火热的轻量级框架,由移动支付Square公司贡献(该公司还贡献了Picasso)
用于替代HttpUrlConnection和Apache HttpClient(android API23 6.0里已移除HttpClient,现在已经打不出来)。
因为我是用Android studio开发,使用前添加依赖:
注:okhttp内部依赖okio,所以要同时导入okio。
1、get 请求
上面就是get请求方式:
(1)先创建OkHttpClient对象,再构造一个Request对象,参数一定要有url,也可以通过Request.Builder设置更多的参数。
(2)构造一个call对象,然后通过okHttpClient发起请求。
(3)请求在回调Callback中获取结果并处理数据。
2、post 请求
post 请求和get 请求其实差不多,只是post中的RequestBody参数是必须的。
3、文件上传
关于OKhttp的知识还有很多,比如get post 的同步异步、带参请求,带参数的文件上传,文件下载等等,今天先简单说到这。接下来说说Retrofit。
二、Retrofit
Retrofit也是Square公司开发的一款针对Android网络请求的框架,其实质就是对okHttp的封装,使用面向接口的方式进行网络请求,利用动态生成的代理类封装了网络接口。
添加依赖:
用法:
先创建一个User类存放实体数据
定义接口,在retrofit中通过一个Java接口作为http请求的api接口
创建retrofit实例
调用接口,并发送请求
以上就是retrofit的简单用法。
OKhttp与Retrofit的联系:Retrofit是基于okhttp的封装,使得使用上更加简洁明了,并且配置灵活,能达到解耦的效果,更加方便利用okhttp的使用。