获取网络的工具类

public class NetDataUtil {

public static void getData(Context context,final String path, final JsonStringCallaBack callaBack) {

        AsyncTask<Void, Void, String> asyncTask = new AsyncTask<Void, Void, String>() {
            @Override
            protected String doInBackground(Void... voids) {
                try {
                    URL url = new URL(path);

                    HttpURLConnection connection = (HttpURLConnection) url.openConnection();

                    connection.setRequestMethod("GET");
                    connection.setReadTimeout(5000);
                    connection.setConnectTimeout(5000);

                    int responseCode = connection.getResponseCode();
                    if (responseCode == 200){
                        InputStream inputStream = connection.getInputStream();

                        String json = streamToString(inputStream,"utf-8");

                        return json;
                    }

                } catch (Exception e) {
                    e.printStackTrace();
                }

                return null;
            }

            @Override
            protected void onPostExecute(String json) {
                //异步拿回这个json串,交给具体解析的那个类
                callaBack.getJsonString(json);
            }
        };

        asyncTask.execute();
    }


}


private static String streamToString(InputStream inputStream, String charset) {
    try {
        InputStreamReader inputStreamReader = new InputStreamReader(inputStream,charset);

        BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
        String s = null;
        StringBuilder builder = new StringBuilder();
        while ((s = bufferedReader.readLine()) != null){
            builder.append(s);
        }

        bufferedReader.close();
        return builder.toString();

    } catch (Exception e) {
        e.printStackTrace();
    }

    return  null;
}

}

还要在写一个类 实现一个借口回调
public interface JsonStringCallaBack {
public void getJsonString(String json);
}

这个是你要用联网的那个类或者Fragment

NetDataUtil.getData(getActivity(), “http://gank.io/api/data/Android/10/1“, new JsonStringCallaBack() {
@Override
public void getJsonString(String json) {
//在这里解析
Gson gson = new Gson();

            DataDataBean dataDataBean = gson.fromJson(json, DataDataBean.class);
            //先清除所有
            list.clear();
            //再添加
            list.addAll(0,dataDataBean.getResults());

            //设置适配器
            setAdapter();

            //停止刷新
            xListView.stopRefresh();
            //设置刷新时间
            String format = new SimpleDateFormat("HH:mm").format(new Date(System.currentTimeMillis()));
            xListView.setRefreshTime(format);
        }
    });
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值