1.添加依赖

compile 'com.squareup.retrofit2:converter-gson:2.3.0'
compile 'com.squareup.retrofit2:adapter-rxjava2:2.3.0'
implementation 'io.reactivex.rxjava2:rxjava:2.2.0'
implementation 'io.reactivex.rxjava2:rxandroid:2.0.2'

2.生成实体类

Api地址:

http://www.wanandroid.com/article/list/1/json

通过以上地址获取json 使用android studio 的GsonFormat工具生成Article类(内容过长就不贴了...)

3.Api类

  ...
import io.reactivex.Observable;
import retrofit2.http.GET;
import retrofit2.http.Path; public interface Api { @GET("article/list/{index}/json")
Observable<Article> getArticle(@Path("index") String index);
}

4.activity 获取数据

import android.util.Log;
import com.djdsm.mystudyapp.R;
import com.djdsm.mystudyapp.home.base.BaseActivity;
import com.djdsm.mystudyapp.home.data.model.Article;
import com.djdsm.mystudyapp.home.data.remote.Api;

import io.reactivex.functions.Consumer;
import retrofit2.Retrofit;
import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory;
import retrofit2.converter.gson.GsonConverterFactory;
import io.reactivex.schedulers.Schedulers;
import io.reactivex.android.schedulers.AndroidSchedulers;

public class RxRetrofitActivity extends BaseActivity {
@Override
public int intiLayout() {
return R.layout.activity_rxretorfit;
}

...

@Override
public void initData() {
doRequestByRxRetrofit();
}

private void doRequestByRxRetrofit() {
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("http://www.wanandroid.com/")
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.build();
Api api = retrofit.create(Api.class);
api.getArticle("1").subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<Article>() {
@Override
public void accept(Article article) throws Exception {
//操作article...
}
}, new Consumer<Throwable>() {
@Override
public void accept(Throwable throwable) throws Exception {
Log.e(TAG, "获取失败");
}
});
}
}

5.总结

Rxjava和Retrofit的新版和旧版的使用方式不同

最新文章

  1. Unity手撸2048小游戏——背景文字控制
  2. 如何在ashx页面获取Session值
  3. Linux(SLES)挂载NTFS移动硬盘实践
  4. 转:更改 centos yum 源
  5. linux nohup命令
  6. 01-资料管理器(Directory/DirectoryInfo操作文件夹类)
  7. freemarker 的replace功能
  8. java 多线程 一个博客
  9. HDU1305 Immediate Decodability(水题字典树)
  10. Flutter之内置动画(转)
  11. Linux进程管理专题
  12. ES6新特性-函数的简写(箭头函数)
  13. Linux之文件恢复[extundelete,针对rm]
  14. Activiti流程编辑器针对自定义用户角色表优化改造
  15. apache2反向代理
  16. Tomcat压缩传输设置
  17. 【TCP/IP】二、协议的概念
  18. Mongodb集群与分片 2
  19. Android-Drawable(三)
  20. 如何使用Soft-NMS实现目标检测并提升准确率

热门文章

  1. 牛客编程巅峰赛S2第4场
  2. 【python】Matplotlib作图常用marker类型、线型和颜色
  3. Springboot结合Jpa的外键使用
  4. 【NOIP2017提高A组模拟9.17】猫
  5. 第6.6节 Python动态执行小结
  6. 老猿学5G扫盲贴:中国移动网络侧CHF的功能分解说明
  7. 第15.37节 PyQt(Python+Qt)入门学习:containers容器类部件QMdiArea多文档界面部件详解及编程开发案例
  8. 第15.28节 PyQt(Python+Qt)入门学习:Model/View架构中的便利类QTableWidget详解
  9. PyQt(Python+Qt)学习随笔:QTreeWidgetItem项列图标的访问方法
  10. PyQt(Python+Qt)学习随笔:QTableView的gridStyle属性