Retrofit是一个安卓端开源网络请求库,目前依赖于okhttp:
http://square.github.io/retrofit/
并提供了多种数据转换工厂和RxJava适配工厂接口。例如:
compile 'com.squareup.retrofit2:retrofit:2.0.1' compile 'com.squareup.retrofit2:converter-gson:2.0.1'
使用retrofit访问接口:
void test0() { //创建Retrofit对象 Retrofit retrofit = new Retrofit.Builder() .baseUrl("https://api.github.com") .addConverterFactory(GsonConverterFactory.create()) .build(); GithubService service = retrofit.create(GithubService.class); service.getContributors("square", "retrofit").enqueue( new Callback<List<ContributorBean>>() { @Override public void onResponse(Call<List<ContributorBean>> call , Response<List<ContributorBean>> response) { for (ContributorBean con : response.body()) { Log.e("TAG", con.login); } } @Override public void onFailure(Call<List<ContributorBean>> call , Throwable t) { t.printStackTrace(); } }); } interface GithubService { //https://api.github.com/repos/{owner}/{repo}/contributors @GET("/repos/{owner}/{repo}/contributors") Call<List<ContributorBean>> getContributors( @Path("owner") String owner, @Path("repo") String repo); } class ContributorBean { String login; String type; }
演示了一个带参Get请求,使用Gson做json数据转换。
若要加入RxJava来做事件处理:
void test0() { //创建Retrofit对象 Retrofit retrofit = new Retrofit.Builder() .baseUrl("https://api.github.com") .addConverterFactory(GsonConverterFactory.create()) .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) .build(); GithubService service = retrofit.create(GithubService.class); service.getContributors("square", "retrofit") .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Action1<List<ContributorBean>>() { @Override public void call(List<ContributorBean> contributorBeans) { for (ContributorBean con : contributorBeans) { Log.e("TAG", con.login); } } }); } interface GithubService { //https://api.github.com/repos/{owner}/{repo}/contributors @GET("/repos/{owner}/{repo}/contributors") Observable<List<ContributorBean>> getContributors( @Path("owner") String owner, @Path("repo") String repo); } class ContributorBean { String login; String type; }
产生了同样的效果。
使用flatMap实现链式调用:访问接口1->接口1返回后->访问接口2->接口2返回
void test0() { //创建Retrofit对象 Retrofit retrofit = new Retrofit.Builder() .baseUrl("https://api.github.com") .addConverterFactory(GsonConverterFactory.create()) .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) .build(); final GithubService service = retrofit.create(GithubService.class); service.getContributors("square", "retrofit") .flatMap(new Func1<List<ContributorBean>, Observable<List<EventBean>>>() { @Override public Observable<List<EventBean>> call(List<ContributorBean> contributorBeans) { for (ContributorBean con : contributorBeans) { Log.e("TAG", con.login); } return service.getEvents(); } }).subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Action1<List<EventBean>>() { @Override public void call(List<EventBean> eventBeans) { for (EventBean eve : eventBeans) { Log.e("TAG", eve.created_at); } } }); } interface GithubService { //https://api.github.com/repos/{owner}/{repo}/contributors @GET("/repos/{owner}/{repo}/contributors") Observable<List<ContributorBean>> getContributors( @Path("owner") String owner, @Path("repo") String repo); //https://api.github.com/events @GET("events") Observable<List<EventBean>> getEvents(); } class EventBean { String id; String type; String created_at; } class ContributorBean { String login; String type; }
结束
相关推荐
android 网络请求框架,MVP Retrofit Rxjava
一款基于RxJava2+Retrofit2实现简单易用的网络请求框架
Retrofit 是Square公司开发的一款针对Android网络请求的框架,Retrofit2底层基于OkHttp实现的,OkHttp现在已经得到Google官方认可,大量的app都采用OkHttp做网络请求。本文使用Retrofit2.0.0版本进行实例演示。 使用...
Android Rxjava + retrofit 请求框架
本库是一款基于RxJava2 Retrofit2实现简单易用的网络请求框架,结合android平台特性的网络封装库,采用api链式调用一点到底,集成cookie管理,多种缓存模式,极简https配置,上传下载进度显示,请求错误自动重试,请求携带...
网络请求框架:Android Retrofit+RxJava+MVP网络请求框架,网络请求用的是retrofit+rxjava,
基于RxJava2 Retrofit2 RxCache的网络请求框架
rxjava2 retrofit2 rxlifecycle2,有生命周期感知的网络请求框架封装(包含多文件上传及文件下载和下载进度)
为了方便Android开发,特封装了一些关于Retrofit2的代码,分享给大家。框架主要包括:Get请求、Post请求、文件上传、文件下载。效果图及讲解见:https://blog.csdn.net/ahuyangdong/article/details/82760382。...
android基于MVP、Retrofit、Rxjava实现网络请求,帮助初学者入门
自己封装的一个retrofit2.0 okHttp3 rxjava的网络请求工具类,拿过去直接可以使用
一步步搭建Retrofit+RxJava+MVP网络请求框架 完整的代码
封装rxjava retrofit 网络缓存并行,延时请求,错误重试机制都有
快捷使用Retrofit网络请求框架(get请求,post请求,上传文件)
好用的网络请求框架 Retrofit+Okhttp+RxJava+MVP模式 好用方便
RxJava整合Retrofit2.0网络框架,将城市天气查询作为一个使用案例
大多数应用程序基本都需要连接网络,发送一些数据给服务端,或者从服务端获取一些数据。通常在 android 中进行网络连接一般使用 Scoket 和...下面我将使Retrofit+Okhttp+Rxjava的方式为大家简述一下网络框架的搭建。
封装好的Rxjava+Retrofit网络请求框架,亮亮出品,必属精品,不骗积分
Android 基于 Retrofit2+Okhttp3 通过SOAP协议请求WebService