初识Retrofit

初识Retrofit

           最近工作不是很紧急,就在相关的网站查看一些有吸引力的文章,学习新的技术来充实自己,看到很多关于Retrofit的文章,出去好奇,自己百度了一下相关的内容,原来Retrofit是一个网络请求的框架,之前也用过不少的网络框架,最近使用okhttp,感觉还不错,现在这个Retrofit看文章很不错,自己就来学习一下。
        Android开发中要使用的话需要添加依赖:(现在一般都是用的Retrofit2.0这个版本)
   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'
    compile 'com.google.code.gson:gson:2.8.1'
      Retrofit的基本使用也比较简单。
      1.初始化实例  
 Retrofit retrofit = new Retrofit.Builder()
                .baseUrl(url)
                .addConverterFactory(GsonConverterFactory.create())
                .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
//                .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
//                .addCallAdapterFactory()
                .build();
  创建Retrofit实例时需要通过 Retrofit.Builder ,并调用 baseUrl 方法设置URL。
     2.定义接口
 
 public interface BlueService {
        @GET("book/search")
        Observable<BookEntity> getSearchBooks(@Query("q") String name,
                                        @Query("tag") String tag, @Query("start") int start,
                                        @Query("count") int count);
    }
        注意,这里是 interface 不是 class ,所以我们是无法直接调用该方法,我们需要用Retrofit创建一个 接口(blueservice) 的代理对象。
     3.调用接口,创建对象
BlueService service = retrofit.create(BlueService.class);
        Observable<BookEntity> observable =service.getSearchBooks("小王子","",0,3);
        observable
                .subscribeOn(Schedulers.newThread())
                .subscribe(new Observer<BookEntity>() {
            @Override
            public void onSubscribe(@io.reactivex.annotations.NonNull Disposable d) {

            }

            @Override
            public void onNext(@io.reactivex.annotations.NonNull BookEntity bookEntity) {
                System.out.println("---------------");
                     System.out.println(bookEntity.toString());
                     System.out.println("---------------");
            }

            @Override
            public void onError(@io.reactivex.annotations.NonNull Throwable e) {
                System.out.println("---------------");
                System.out.println(e.toString());
                System.out.println("---------------");
            }

            @Override
            public void onComplete() {

            }
        });




       这里是不是很简单,我在这个例子中也使用到了rxjava2.0 类,很多同学应该有所了解,不了解的可以看看rxjava2.0初识,这里介绍了相关的原理和使用。
       学习retrofit也是看了不少的文章,对自己感觉帮助很大的文章推荐给大家----retrofit,刚刚了解retrofit,也只能给大家分享一点点的学习经验,后续学习更多相关的,会分享给大家。
参考文档:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值