Android基于Retrofit2.0+RxJava的结合使用,让你的网络请求更简单

来源:互联网 发布:php编程是什么 编辑:程序博客网 时间:2024/05/16 17:15

最近学习了一种现在非常火的请求网络的方式retrofit2.0,使用起来也是非常的简单它与rxjava的结合也会让你的请求更加的简单,下面上代码,简单的演示一下.

具体的使用

1.首先在自己的工程中导入一下依赖,依赖千万别倒错了,不然就会出现问题.!!

  compile 'com.squareup.retrofit2:retrofit:2.0.2'    // Retrofit库    compile 'com.squareup.okhttp3:okhttp:3.1.2'    // Okhttp库    compile 'com.squareup.retrofit2:converter-gson:2.0.2'    compile 'io.reactivex:rxjava:1.0.14'    compile 'io.reactivex:rxandroid:1.0.1'    compile 'com.squareup.retrofit2:adapter-rxjava:2.0.2'

2.在配置文件中添加权限

<uses-permission android:name="android.permission.INTERNET"/>

3.接下来就该看看代码的实现了.
首先新建一个接口的类

    public interface MyApi {//这是请求数据网址的后半部分,前一部分在实例 Retrofit的时候会出现    @GET("a2a/impressApi/news/mergeList?sign=C7548DE604BCB8A17592EFB9006F9265&pageSize=20&gender=2&ts=1871746850&")    //正常网络请求返回类型用Call就可以了,但是我们是和Rxjava结合一起使用,所以使用被观察者对象     Observable<News> getCall(@Query("page") int page);//接下来实例化Retrofit,这个可以在此类中实现也可以写在MainActivity中    Retrofit retrofit=new Retrofit.Builder()            .baseUrl("http://www.yulin520.com/")//网址的前部分,这里的url与请求的url拼接成一个完整的URL              .addConverterFactory(GsonConverterFactory.create())//使用Gson进行解析            .addCallAdapterFactory(RxJavaCallAdapterFactory.create())//支持RxJava,在使用RxJava时必须要加这句话            .build();    MyApi utils=retrofit.create(MyApi.class);}

然后再新建一个MainActivity,实现如下代码

 MyApi.utils.getCall(page).subscribeOn(Schedulers.io())                .observeOn(AndroidSchedulers.mainThread())                .subscribe(new Observer<News>() {            @Override            public void onCompleted() {            }            @Override            public void onError(Throwable e) {            }            @Override            public void onNext(News news) {                Log.i("111111", "onNext: "+news.toString());            }        });

这样Retrofit和Rxjava就完美的结合使用了.

有哪里不懂可以评论下,看到时会进行解答,请大家多多支持,谢谢大家.

想要深入了解的给大家推荐一篇博客:https://juejin.im/entry/596808f2f265da6c386d0d77

阅读全文
1 0
原创粉丝点击