https://github.com/pinguo-zhouwei/retrofitrxjavademo
Retrofit+Rxjava + OkHttp 封装简易网络请求库,附有demo 示例
https://github.com/pinguo-zhouwei/retrofitrxjavademo
okhttp retrofit2 rxjava
Last synced: 19 days ago
JSON representation
Retrofit+Rxjava + OkHttp 封装简易网络请求库,附有demo 示例
- Host: GitHub
- URL: https://github.com/pinguo-zhouwei/retrofitrxjavademo
- Owner: pinguo-zhouwei
- Created: 2016-11-17T15:20:08.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2016-11-17T16:46:27.000Z (almost 9 years ago)
- Last Synced: 2025-10-04T18:52:23.784Z (28 days ago)
- Topics: okhttp, retrofit2, rxjava
- Language: Java
- Homepage:
- Size: 2.82 MB
- Stars: 163
- Watchers: 7
- Forks: 56
- Open Issues: 1
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
README
###Retrofit + RxJava + OkHttp 让网络请求变的简单
博客地址:
1,[Retrofit + RxJava + OkHttp 让网络请求变的简单-基础篇](http://www.jianshu.com/p/5bc866b9cbb9)
2,[Retrofit + RxJava + OkHttp 让网络请求变的简单-封装篇](http://www.jianshu.com/p/811ba49d0748)
####添加一个新的网络请求实现一下两步:
#####一,添加一个业务Loader
代码如下:
```
/**
* Created by zhouwei on 16/11/17.
*/
public class GankLoader extends ObjectLoader {
private static final String GANK_URL = "http://gank.io/api/data/福利/50/1";
private GankService mGankService ;
public GankLoader(){
mGankService = RetrofitServiceManager.getInstance().create(GankService.class);
}
/**
* 获取干货列表
* @return
*/
public Observable> getGankList(){
return observe(mGankService.getGank(GANK_URL)).map(new Func1>() {
@Override
public List call(GankResp gankResp) {
return gankResp.results;
}
});
}
public interface GankService{
/**
*
* @param url
* @param
* @param
* @return
*/
@GET
Observable getGank(@Url String url/*, @Path("count")int count,@Path("page")int page*/);
}
}
```
##### 二,在Activity/Fragment 中,生成Loader 实例,调用方法获取结果
代码如下:
```
mGankLoader = new GankLoader();
```
```
private void getGankList(){
Subscription subscription = mGankLoader.getGankList().subscribe(new Action1>() {
@Override
public void call(List gankEntries) {
Log.i("FK","gank size:"+gankEntries.size());
mAdapter.setData(gankEntries);
mAdapter.notifyDataSetChanged();
}
}, new Action1() {
@Override
public void call(Throwable throwable) {
throwable.printStackTrace();
}
});
addSubscription(subscription);
}
```
最后,示例API 的效果图:
1,福利列表(数据来自干货集中营):

2,电影列表(数据来自豆瓣):
