您的位置:首页 > 其它

初识Retrofit

2017-07-06 16:45 176 查看

初识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,也只能给大家分享一点点的学习经验,后续学习更多相关的,会分享给大家。
参考文档:
Retrofit官网

Retrofit2.0,有史以来最大的改变
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  retrofit2.0