Retrofit

作者: 发光的老金 | 来源:发表于2019-12-09 16:54 被阅读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.处理返回数据

    相关文章

      网友评论

          本文标题:Retrofit

          本文链接:https://www.haomeiwen.com/subject/asocgctx.html