yy1.4 HttpUtils回调方法的再次封装 返回JSON对象

 1 public class MainActivity extends Activity {
 2 
 3     private String PATH = "https://www.baidu.com/";
 4 
 5     public static final String BAIKEPATH = "http://sns.maimaicha.com/api?apikey=b4f4ee31a8b9acc866ef2afb754c33e6&format=json&method=news.getListByType";
 6 
 7     public static final String TOUTIAO = "http://sns.maimaicha.com/api?apikey=b4f4ee31a8b9acc866ef2afb754c33e6&format=json&method=news.getHeadlines";
 8 
 9     private TextView mTv;
10 
11     private HttpUtils mHttpUtils;
12 
13     private HttpHandler<String> mHttpHandler;
14 
15     @Override
16     protected void onCreate(Bundle savedInstanceState) {
17         super.onCreate(savedInstanceState);
18         setContentView(R.layout.activity_main);
19 
20         mTv = (TextView) findViewById(R.id.tv);
21 
22         mHttpUtils = new HttpUtils();
23 
24         // 设置当前HttpUtils实例缓存超时的时间,以毫秒为单位
25         mHttpUtils.configCurrentHttpCacheExpiry(1);
26     }
27 
28     public void request(View view) {
29         mHttpHandler = mHttpUtils.send(HttpMethod.GET, TOUTIAO, new RequestCallBackEx<DataBean>(DataBean.class) {
30 
31             @Override
32             public void onSuccess(DataBean obj) {
33                 Log.i("bm", obj.errorMessage);
34                 Log.i("bm", obj.data.toString());
35             }
36 
37             /**
38              * 请求失败的时候会回调,并且将失败的原因返回
39              */
40             @Override
41             public void onFailure(HttpException arg0, String arg1) {
42                 arg0.printStackTrace();
43                 Log.i("bm", arg0.toString());
44                 Log.i("bm", arg1);
45             }
46         });
47     }
48 
49     public void cancel(View view) {
50         mHttpHandler.cancel();
51     }
52 }
 1 public abstract class RequestCallBackEx<T> extends RequestCallBack<String> {
 2 
 3     private Class<T> mClass;
 4 
 5     public RequestCallBackEx(Class<T> cls) {
 6         mClass = cls;
 7     }
 8 
 9     @Override
10     public void onSuccess(ResponseInfo<String> arg0) {
11         try {
12             String data = arg0.result;
13 
14             if (data != null) {
15                 T obj = JSON.parseObject(data, mClass);
16                 onSuccess(obj);
17             }
18         } catch (Exception e) {
19             onFailure(new HttpException(e), e.toString());
20         }
21     }
22 
23     public abstract void onSuccess(T obj);
24 }
 1 public class DataBean {
 2     public List<Item> data;
 3     public String errorMessage;
 4 
 5     public static class Item {
 6         public String id;
 7         public String title;
 8         public String source;
 9         public String description;
10         public String wap_thumb;
11         public String create_time;
12         public String nickname;
13 
14         @Override
15         public String toString() {
16             return "Item [title=" + title + "]";
17         }
18     }
19 }

 

posted on 2015-04-07 19:10  CodeUtils  阅读(741)  评论(0编辑  收藏  举报

导航