您的位置:首页 > 理论基础 > 计算机网络

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
*************************************************************************************
注意别忘了,加上网络权限,
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐