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使用

  1. 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.处理返回数据

上一篇下一篇

猜你喜欢

热点阅读