Retrofit
2019-12-09 本文已影响0人
发光的老金
Retrofit介绍
Retrofit是Square公司基于RESTful风格推出的网络框架封装
Retrofit与OKHttp的关系
Retrofit是基于OKHttp的网络请求的二次封装,其本质仍是OKHttp
与其它网络库的对比
AndroidAsynHttp
基于HttpClient,作者已停止维护,Android5.0不再使用HttpClient,因此不推荐使用。
Volley
基于HttpUrlConnention,Google官方推出,只适合轻量级的网络交互如数据传输小,不适合大文件下载上传场景。
Retrofit优点
API设计简洁易用,注解化配置高度解耦,支持多种解析器,支持Rxjava
Retrofit使用
- Retrofit开源库,OKHttp网络库,数据解析起集成,注册网络权限
依赖包注入
compile 'com.squareup.retrofit2:retrofit:2.3.0'
compile 'com.squareup.retrofit2:converter-gson:2.3.0'
compile 'com.squareup.retrofit2:adapter-rxjava2:2.3.0'
网络权限
<uses-permission android:name="android.permission.INTERNET" />
2.创建接口设置请求类型与参数
新建UserInfoModel类和UserMgrService接口
新建UserInfoModel与UserMgrService接口
@GET("login")
Call < UserInfoModel > login(@Query("userName") String userName,
@Query("password") String password);
3.创建Retrofit对象,设置数据解析器
Retrofit retrofit = new Retrofit.Builder().baseUrl(Constants.BASE_URL).addCallAdapterFactory(GsonConverterFactory.create());
4.生成接口对象
retrofit.create(UserMgrService.class);
5.调用接口方法返回Call对象
Call < UserInfoModel > call = service.login("222","222");
6.发送请求(同步,异步)
同步:调用Call对象的execute(),返回结果的响应体;
异步:调用Call对象的enqueue(),参数是一个回调;
7.处理返回数据