Android Retrofit2.0配合RxJava2.0请求网络
2018-01-07 20:27
399 查看
需要添加依赖
从上向下依次为Rxjava依赖,Rxjava依赖,Retrofit依赖,Retrofit支持自动Gson解析依赖,Retrofit支持Rxjava配合使用依赖
compile 'io.reactivex.rxjava2:rxjava:+'
compile 'io.reactivex.rxjava2:rxandroid:+'
compile 'com.squareup.retrofit2:retrofit:2.0.0'
compile 'com.squareup.retrofit2:converter-gson:2.0.2'
compile 'com.squareup.retrofit2:adapter-rxjava2:+'
封装拦截器
public class MyIntercept implements Interceptor {
@Override
public Response intercept(Chain chain) throws IOException {
Request request = chain.request();
HttpUrl build = request.url()
.newBuilder()
.addQueryParameter("source", "android")//公共参数
.build();
Request requestNew = request.newBuilder()
.url(build)
.build();
return chain.proceed(requestNew);
}
}
工具类
public interface RetrofitServices {
/**
* get请求方式
* 登录的功能域名
*/
@GET("user/login")
Observable<LoginBean> getLoginMsg(@Query("mobile") String mobile, @Query("password") String password);
}在M层进行网络请求
public class LoginModel {
public void receive(String mobile, String password, final ILoginPresenter iLoginPresenter) {
RetrofitServices retrofitServices = RetrofitUtil.getInstance("http://120.27.23.105/").create(RetrofitServices.class);
retrofitServices.getLoginMsg(mobile, password)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<LoginBean>() {
@Override
public void accept(LoginBean loginBean) throws Exception {
if(loginBean!=null){
iLoginPresenter.onLoginSuccess(loginBean);
}
}
});
}
}
从上向下依次为Rxjava依赖,Rxjava依赖,Retrofit依赖,Retrofit支持自动Gson解析依赖,Retrofit支持Rxjava配合使用依赖
compile 'io.reactivex.rxjava2:rxjava:+'
compile 'io.reactivex.rxjava2:rxandroid:+'
compile 'com.squareup.retrofit2:retrofit:2.0.0'
compile 'com.squareup.retrofit2:converter-gson:2.0.2'
compile 'com.squareup.retrofit2:adapter-rxjava2:+'
封装拦截器
public class MyIntercept implements Interceptor {
@Override
public Response intercept(Chain chain) throws IOException {
Request request = chain.request();
HttpUrl build = request.url()
.newBuilder()
.addQueryParameter("source", "android")//公共参数
.build();
Request requestNew = request.newBuilder()
.url(build)
.build();
return chain.proceed(requestNew);
}
}
工具类
public class RetrofitUtil { public static Retrofit instance; private Retrofit retrofit; /* * * 封装好的拼接常用域名的方法 * * @param baseurl*/ public static Retrofit getInstance(String baseurl){ if(instance==null){ synchronized (RetrofitUtil.class){ if(instance==null){ /* 自定义OkHttp请求 封装拦截器*/ OkHttpClient httpClient = new OkHttpClient.Builder() .addInterceptor(new MyIntercept()) .build(); instance = new Retrofit.Builder() .baseUrl(baseurl) .client(httpClient) .addConverterFactory(GsonConverterFactory.create()) .addCallAdapterFactory(RxJava2CallAdapterFactory.create()) .build(); } } } return instance; } }接口,拼接功能域名
public interface RetrofitServices {
/**
* get请求方式
* 登录的功能域名
*/
@GET("user/login")
Observable<LoginBean> getLoginMsg(@Query("mobile") String mobile, @Query("password") String password);
}在M层进行网络请求
public class LoginModel {
public void receive(String mobile, String password, final ILoginPresenter iLoginPresenter) {
RetrofitServices retrofitServices = RetrofitUtil.getInstance("http://120.27.23.105/").create(RetrofitServices.class);
retrofitServices.getLoginMsg(mobile, password)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<LoginBean>() {
@Override
public void accept(LoginBean loginBean) throws Exception {
if(loginBean!=null){
iLoginPresenter.onLoginSuccess(loginBean);
}
}
});
}
}
相关文章推荐
- Retrofit2.0+RxJava+RxAndroid——强强联合的网络请求框架
- Retrofit 2.0使用详解,配合OkHttp、Gson,Android最强网络请求框架
- Retrofit 2.0使用详解,配合OkHttp、Gson,Android最强网络请求框架
- android MVP+Retrofit2.0与RxJava网络请求数据,listview展示
- Retrofit2.0+RxJava+RxAndroid——强强联合的网络请求框架
- Retrofit 2.0使用详解,配合OkHttp、Gson,Android最强网络请求框架
- Retrofit2.0+RxJava+RxAndroid——强强联合的网络请求框架
- Retrofit2.0+RxJava+RxAndroid——强强联合的网络请求框架
- Android基于Retrofit2.0和RXJava2.0 的HTTPS网络请求搭建
- Retrofit 2.0 Android网络请求框架
- Android_Retrofit+RxJava+MVP+网络请求多次判断
- Android:RxJava 结合 Retrofit 优雅实现 网络请求轮询
- 【Android】RxJava + Retrofit完成网络请求
- android+MVP+Retrofit+RxJava做网络请求
- Android 网络请求框架 Retrofit2.0实践使用总结
- kotlin for android----------MVP模式下(OKHttp和 Retrofit+RxJava)网络请求的两种实现方式
- Retrofit 2.0 + RxJava 2.0搭建简单的Android请求框架。
- Android 网络请求框架Retrofit2.0使用笔记
- Android RxJava与Retrofit与RecyclerView与Fresco结合网络请求
- 【Android】RxJava + Retrofit完成网络请求