获取网络的工具类

来源:互联网 发布:万能端口检测工具 编辑:程序博客网 时间:2024/06/12 21:59

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);        }    });