和Retrofit2单独使用有一些区别
首先,同样写个interface,这里是GitHubService.java,我们这次要实现获取官方提供的测试接口的数据
1 public interface GitHubService { 2 @GET("repos/{owner}/{repo}/contributors") 3 Observable<List<Contributor>> getUserInfoByObservable(@Path("owner") String owner, @Path("repo") String repo); 4 }
注意,上边的区别,retrofit2单独使用的时候是Call<List<Contributor>>,而rx使用的是Observable,可观察者对象
再写一个获取数据的工具类ParseUtils.java
1 public class ParseUtils { 2 3 public static GitHubService gitHubService = new Retrofit.Builder().baseUrl("https://api.github.com/") 4 .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) 5 .addConverterFactory(GsonConverterFactory.create()).build().create(GitHubService.class); 6 7 }
这里也有一些区别,retrofit2单独使用时不需要addCallAdapterFactory(RxJavaCallAdapterFactory.create()),这里使用rx,如果没有这句话,会报Unable to create call adapter for rx.Observable错误
接下来在activity中使用
1 ParseUtils.gitHubService.getUserInfoByObservable("square", "retrofit") 2 .subscribeOn(Schedulers.newThread()) 3 .observeOn(AndroidSchedulers.mainThread()) 4 .subscribe(new Action1<List<Contributor>>() { 5 @Override 6 public void call(List<Contributor> contributors) { 7 //do somthing 8 } 9 });
我在上一篇记录retrofit2使用时写了demo,以后可以对照
时间: 2024-11-08 22:07:21