retrofic

  • 实现解耦是retrofic的精华

传统的http访问

  • 构造request
  • 创建一个线程池
  • 将request放入到线程池中
  • 获取数据后回调给上层

  • 需要自己管理线程切换,需要自己解析读取数据,解析数据成对象,切换回主线程,回调给上层。

retrofic特性

  • 可以同步请求
  • 可以异步请求
  • 适配不同的适配器来处理数据
  • 可以选择不同的反序列化工具
retrofit = new Retrofit.Builder()
                        .baseUrl(URL.SERVICE_URL)
                        //.addCallAdapterFactory(RxJava2CallAdapterFactory.create())//网络请求适配器
                        .addConverterFactory(GsonConverterFactory.create())//反序列化工具来解析数据
                        .client(okHttpClient)
                        .build();
// 创建网络请求接口的实例(内部可以参考源码,利用了动态代理来生成具体的请求类)
mApi = retrofit.create(APi.class);
//对发送请求进行封装
Call<News> news = mApi.getNews("1", "10");
//发送网络请求(异步)
news.enqueue(new Callback<News>() {
    //请求成功时回调
    @Override
    public void onResponse(Call<News> call, Response<News> response) {
       //请求处理,输出结果-response.body().show();
    }

    @Override
    public void onFailure(Call<News> call, Throwable t) {
       //请求失败时候的回调
    }
});
//发送网络请求(同步)
Response<Reception> response = news.execute();

以上实例:https://www.jianshu.com/p/0fda3132cf98

retrofic比较主流的做法是和Rxjava结合

https://www.jianshu.com/p/308f3c54abdd

源码解析:https://www.jianshu.com/p/45cb536be2f4

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值