public class NetUtil {
    private static NetUtil instance;

    private NetUtil(){

    }

    public static NetUtil getInstance(){
        if (instance==null){
            synchronized (NetUtil.class){
                if (instance==null){
                    instance=new NetUtil();
                }
            }
        }
        return instance;
    }
    public String getRequest(String apiUrl) {
        String result = \"\";

        try {
            URL url = new URL(apiUrl);
            HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
            urlConnection.setRequestMethod(\"GET\");
            urlConnection.setConnectTimeout(5000);
            urlConnection.setReadTimeout(5000);
            int responseCode = urlConnection.getResponseCode();
            if (responseCode == HttpURLConnection.HTTP_OK) {
                result = stream2String(urlConnection.getInputStream());

            }
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return result;
    }

    /**
     * 执行一个网络请求
     *
     * @param apiUrl
     * @param clazzBean
     * @param <T>
     * @return 返回外部需要的Bean
     */
    public <T> T getRequest2(String apiUrl, Class clazzBean) {
          obj;
        String result = getRequest(apiUrl);
        obj = new Gson().fromJson(result, clazzBean);
        return (T) obj;

    }

    public void getRequest3(String apiUrl, final Class clazzBean, final NetCallback netCallback) {
        new AsyncTask<String,Void, >(){

            @Override
            protected   doInBackground(String... strings) {
                return getRequest2(strings[0],clazzBean);
            }

            @Override
            protected void onPostExecute(  o) {
                if (o == null){
                    netCallback.onFail(\"请求失败\");
                }else{

                    netCallback.onSuccess(o);
                }
            }
        }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR,apiUrl);

    }

    public interface NetCallback<T> {

        void onSuccess(T t);

        void onFail(String msg);

    }

    private String stream2String(InputStream InputStream) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(InputStream));
        StringBuilder stringBuilder = new StringBuilder();
        for (String read = br.readLine(); read != null; read = br.readLine()) {
            stringBuilder.append(read);
        }

        return stringBuilder.toString();
    }
    //对手有没有网络进行判断
    public static boolean hasNetwork(Context context){
        ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo networkInfo = cm.getActiveNetworkInfo();
        return networkInfo != null && networkInfo.isAvailable();
    }

}
在这里插入代码片
收藏 打印