天天在用,可你真的会用Retrofit吗?

640?wx_fmt=jpeg


Retrofit说起来相当简单,简单到源码只有37个文件,其中22个文件是注解,还都和HTTP有关,真正暴露给用户的类并不多。


Retrofit天天在用,那你会手写一个Retrofit请求吗?今天我们就从Retrofit开始,谈谈module架构实战。


一、创建Retrofit实例


 
  

Retrofit retrofit = new Retrofit.Builder()
        .baseUrl("http://localhost:4567/")
        .build();


创建Retrofit实例时需要通过Retrofit.Builder,并调用baseUrl方法设置URL。


二、接口定义


以获取指定id的Blog为例:


 
  

public interface BlogService {
    @GET("blog/{id}")
    Call<ResponseBody> getBlog(@Path("id") int id);
}


注意,这里是interface不是class,所以我们是无法直接调用该方法,我们需要用Retrofit创建一个BlogService的代理对象。


 
  

BlogService service = retrofit.create(BlogService.class);


拿到代理对象之后,就可以调用该方法啦。


三、接口调用


 
  

Call<ResponseBody> call = service.getBlog(2);
// 用法和OkHttp的call如出一辙,
// 不同的是如果是Android系统回调方法执行在主线程
call.enqueue(new Callback<ResponseBody>() {
    @Override
    public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response
{
        try {
            System.out.println(response.body().string());
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    @Override
    public void onFailure(Call<ResponseBody> call, Throwable t
{
        t.printStackTrace();
    }
});


打印结果:


 
  

{"code":200,"msg":"OK","data":{"id":2,"date":"2019-10-17 17:17:50","author":"二飞","title":"Retrofit2 测试2","content":"这里是 Retrofit2 Demo 测试服务器2"},"count":0,"page":0}


以上仅是Retrofit的入门,说到Retrofit就不得说到另一个火到不行的库RxJava。那你知不知道:


  1. Retrofit, OkHttp和RxJava之间是什么关系?

  2. Retrofit的引入到底解决了哪些问题?你能手写一个Retrofit的网络请求吗?

  3. RxJava主要用来干什么?怎样将它加入到网络模块中?和Retrofit接口我们需要做哪些改变?

  4. 怎样让我们的网络模块支持完美支持多个域名?

  5. 多个环境我们该怎样支持?

  6. Charles是什么?它的工作原理是什么?怎样运用它?

  7. 怎样保证网络的安全可靠?


这些问题你能答上来多少?


我们特邀了中国联通架构师Allen老师为我们带来——《Android网络架构设计手写实战》。两堂课的时间你就可以彻底理解Retrofit、OkHttp和Rxjava的原理和关系;一步一步见证一个支持多域名、多环境的安全可靠的网络模块的架构过程,从而让同学们明白脱离搬运工进阶架构师的紧迫感和重要性。


原价99元,公众号粉丝专享0.1元。


640?


Allen老师: 


国防科技大学计算机学院研究生,全球首批Android开发者; 


专精领域:Android 、移动互联网开发、全栈开发的软件进入Google play的Top paid list。


640?wx_fmt=jpeg

发送“000”立即添加小姐姐报名吧


推荐阅读:


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值