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

判断网络请求是否成功-------(详情)

2018-12-17 16:22 204 查看

1.定义一个base类

package com.example.zhoukao3_ks.ui.bean;

public abstract class BaseResponse {

public abstract boolean isSuccess();
public abstract String getMsg();
}

2.让封装网络数据的bean类继承base类重写方法

package com.example.zhoukao3_ks.ui.bean;
import java.util.List;

public class NewsBean extends BaseResponse{

private String info;
private int status;
private List<DataBean> data;

@Override
public boolean isSuccess() {
return status == 1;
}
@Override
public String getMsg() {
return info;
}

public String getInfo() {
return info;
}
public void setInfo(String info) {
this.info = info;
}
public  int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public List<DataBean> getData() {
return data;
}
public void setData(List<DataBean> data) {
this.data = data;
}
public static class DataBean {
private String news_id;
private String news_summary;
private String news_title;
private String pic_url;
public String getNews_id() {
return news_id;
}
public void setNews_id(String news_id) {
this.news_id = news_id;
}
public String getNews_summary() {
return news_summary;
}
public void setNews_summary(String news_summary) {
this.news_summary = news_summary;
}
public String getNews_title() {
return news_title;
}
public void setNews_title(String news_title) {
this.news_title = news_title;
}
public String getPic_url() {
return pic_url;
}
public void setPic_url(String pic_url) {
this.pic_url = pic_url;
}
}

}

3.让请求数据的base基类中的Gson方法中定义的返回类型继承第一步定义的base类

private <T extends BaseResponse>T getGson(String murl,Class clazz){
String s = Connection_wl(murl);
T t = (T) new Gson().fromJson(s, clazz);
return t;
}

4.请求数据的base基类中的线程方法中调用base类中的方法进行判断

//Handler
public void getRequest(final String apiUrl, final Class<? extends BaseResponse> clazz, final NetCallback callback) {
new 4000 Thread(new Runnable() {
@Override
public void run() {
final BaseResponse object = getGson(apiUrl, clazz);

if(object == null) {//网络 json
mHandler.post(new Runnable() {
@Override
public void run() {
callback.Filer("请求失败");
}
});
}else if(!object.isSuccess()) {//fuwuduan

mHandler.post(new Runnable() {
@Override
public void run() {
callback.Filer(object.getMsg());
}
});

}else if (object.isSuccess()) {
mHandler.post(new Runnable() {
@Override
public void run() {
callback.onsuccess(object);
}
});
}
}
}).start();
}
阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: