AsyncTask 工具类







public class MyTask extends AsyncTask<String,Void,String>{


    //1.申请一个接口类对象
    private  Icallbacks icallbacks;

    //将无参构造设置成私有的,使之在外部不能够调用
    private MyTask(){}

    public MyTask(Icallbacks icallbacks) {
        this.icallbacks = icallbacks;
    }

    @Override
    protected String doInBackground(String... params) {
           String str="";
try {
    URL url=new URL(params[0]);
    HttpURLConnection connection=(HttpURLConnection)url.openConnection();
    connection.setRequestMethod("GET");
    connection.setReadTimeout(5000);
    connection.setConnectTimeout(5000);
if(connection.getResponseCode()==200){
    InputStream inputStream=connection.getInputStream();
    //调用工具类中的静态方法
    str=StreamToString.streamToStr(inputStream,"utf-8");
}else if(connection.getResponseCode()==301 || connection.getResponseCode()==302){

    String location = connection.getHeaderField("location");
    URL url2=new URL(location);

    HttpURLConnection connection2=(HttpURLConnection)url2.openConnection();
    connection2.setRequestMethod("GET");
    connection2.setReadTimeout(5000);
    connection2.setConnectTimeout(5000);
    Log.d("aaa","++++++++"+connection.getResponseCode());
    //获取
    if(connection2.getResponseCode()==200){
        InputStream inputStream=connection2.getInputStream();
        //调用工具类中的静态方法
        str=StreamToString.streamToStr(inputStream,"utf-8");
    }

}
} catch (Exception e) {
    e.printStackTrace();
}
return str; } @Override protected void onPostExecute(String s) { super.onPostExecute(s); //3.调用接口 //解析,封装到bean,更新ui组件 icallbacks.updateUiByjson(s); } //定义一个接口 public interface Icallbacks{ /** * 根据回传的json字符串,解析并更新页面组件 * @param jsonstr */ void updateUiByjson(String jsonstr); }}

/*****************************************************
   //调用网络请求工具类,获取数据
        MyNetTask myNetTask=new MyNetTask(new Icallbacks() {
            @Override
            public void getNetdata(String jsonstr) {
                //gson
                Gson gson=new Gson();
                Result result=gson.fromJson(jsonstr, Result.class);


                //listview要显示的数据
                List<Result.DataEntity> listviewDatas = result.getData();
                //轮播图要显示的数据
                List<Result.DataScrollEntity> viewpagerDatas = result.getDataScroll();


                //为viewpager设置适配器
                viewPager.setAdapter(new MyLunBoAdapter(getActivity(),viewpagerDatas));
            }
        });
        myNetTask.execute("http://www.93.gov.cn/93app/data.do?channelId=0&startNum=0");


    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值