RxJAVA和Retrofit在安卓中网络请求使用实例
2016-08-09 11:14
711 查看
> 本博客内容一致同步到本人的博客站点:http://www.zhoutaotao.xyz 欢迎访问留言交流
package ClassSelf; public class UserMessage { private String name; private String id; private String subscriptions_url; public String getSubscriptions_url() { return subscriptions_url;} public String getName() { return name; } public void setName(String name) { this.name = name; } public String getId() { return id; } public void setId(String id) { this.id = id; } public UserMessage(String name, String id, String subscriptions_url) { this.name = name; this.id = id; this.subscriptions_url = subscriptions_url; } }
//服务
package Interface;import ClassSelf.UserMessage;import retrofit2.Call;import retrofit2.http.GET;import retrofit2.http.Path;public interface ServerInterface{@GET("/users/{user}")//定义一个GET注解Call<UserMessage> getUserMessage(@Path("user") String user);}
MainActivity部分代码
Observable<UserMessage> observable=Observable.create(new Observable.OnSubscribe<UserMessage>() {//构造被观察者@Overridepublic void call(final Subscriber<? super UserMessage> subscriber) {//里面是需要网络请求的方法体Retrofit retrofit=new Retrofit.Builder() .baseUrl(UrlMessage.BaseUrl).addConverterFactory(GsonConverterFactory.create()).build();ServerInterface serverInterface=retrofit.create(ServerInterface.class);Call<UserMessage> call=serverInterface.getUserMessage("badman");call.enqueue(new Callback<UserMessage>() {@Overridepublic void onResponse(Call<UserMessage> call, Response<UserMessage> response) {final UserMessage user=response.body();title.setText("SUCCESS!");subscriber.onNext(user);//调用onNext事件subscriber.onCompleted();//调用完成事件}@Overridepublic void onFailure(Call<UserMessage> call, Throwable t) {}});}});Subscriber<UserMessage> subscriber=new Subscriber<UserMessage>() {@Overridepublic void onCompleted() {Log.e(">>>>>>>>>>>>>>>","OK");}@Overridepublic void onError(Throwable e) {Log.e(">>>>>>>>>>>>>>>","Exception");}@Overridepublic void onNext(UserMessage userMessage) {Log.e(">>>>>>>>>>>>>>>",userMessage.getSubscriptions_url());}};observable.subscribe(subscriber);
执行结果:
************************************************************************************
08-09 11:09:37.864 14871-14907/cn.edu.ahnu.getpicture W/System: ClassLoader referenced unknown path: /data/data/cn.edu.ahnu.getpicture/lib08-09 11:09:40.553 14871-14871/cn.edu.ahnu.getpicture E/>>>>>>>>>>>>>>>: https://api.github.com/users/Badman/subscriptions 08-09 11:09:40.553 14871-14871/cn.edu.ahnu.getpicture E/>>>>>>>>>>>>>>>: OK
*************************************************************************************
注意别忘了,加上网络权限,
相关文章推荐
- RxJava结合Retrofit使用 自定义封装类结合泛型 请求网络数据+Fresco+RecyclerView+MVP分层
- Retrofit+RxJava网络请求框架使用详解
- (安卓) MVP 框架 (Rxjava2+Retrofit)结合 实现网络请求
- 使用MVP+Retrofit+RxJava实现的的Android Demo (下)使用Retrofit+RxJava处理网络请求
- Android使用RxJava+Retrofit请求网络的小Demo
- 使用MVP+Retrofit+RxJava 图片加载使用Fresco 做网络请求并展示数据
- Android 使用RxJava+Retrofit +Realm 组合加载数据 <读取缓存 显示 请求网络数据 缓存最新数据 更新界面>(一)
- 使用MVP+Retrofit+RxJava 图片加载使用Fresco 做网络请求并展示数据
- 使用Retrofit+RxJava搭建简单的MVP网络请求框架
- RXJava+Retrofit的结合使用,来同时请求多个网络接口,我们使用的是merge或mergeArray操作符
- Kotlin新语言使用RxJava+Retrofit请求网络数据+lambda表达式+RecyclerView展示+Glide展示图片
- Android 使用RxJava+Retrofit +Realm 组合加载数据 <读取缓存 显示 请求网络数据 缓存最新数据 更新界面>(二)
- rxjava 和retrofit 结合使用 请求网络
- 使用Retrofit结合RxJava实现Get与Post网络请求
- RxJava2+Retrofit2网络请求框架封装及使用
- 使用Retrofit和Rxjava让你的网络请求更简单
- 使用Retrofit和Rxjava让你的网络请求更简单
- 使用Stetho调试Retrofit的网络请求
- Retrofit网络请求框架使用简析——Android网络请求框架(四)
- Android】RxJava + Retrofit完成网络请求