OkHttp和Retrofit请求方式区别
首先Ok分为同步和异步的网络请求
同步请求步骤:
- 创建okhttpclient对象
- 创建request对象,或者是response对象
- 通过call对象来操作请求
(call是一个接口,所以要实现他的callback对象 callback有3个特点:
1, 只能用一次 如果再次使用就要抛出异常
2, 将同步请求放入到请求队列中
3, Okhttp通过拦截器做网络请求 - 请求任务执行完毕后从Dispatcher中移除
异步和同步的第一步是一样的
1.okhttpclient对象
2. 创建一个request对象
3.通过call对象调用equeue的方法进行请求数据
4.最后callback进行回调获取数据
最后总结:
不管同步还是异步都是通过拦截器链进行网络请求,依次执行拦截器链中的拦截器
最终会的得到后台数据的返回
Retrofit:
工作本质:okHttp,而retrofit只是负责网络请求接口的封装
对于接口的封装就是: 1.retrofit将http请求抽象成java接口
2.在接口里用注解描述和配置网络请求的参数
3.用动态代理的方式,动态将网络请求接口的注解,解析成http请求
4.用okhttp来最后执行Http请求
五步:
- 创建描述网络请求的接口
- 创建retrofit实例
- 创建网络接口的实例并配置网络请求的参数
- 发送网络请求(同步和异步)
- 处理服务器返回的数据
设计模式:构建者模式