工具类Util的使用
//单例模式
private static HttpUtils httpUtils = new HttpUtils();
private HttpLoadListener httpLoadListener;
private HttpUtils() {
}
public static HttpUtils httpUtils() {
if (httpUtils == null) {
httpUtils = new HttpUtils();
}
return httpUtils;
}
//get请求
public void get(String url) {
new MyTask().execute(url);
}
//使用AsyncTask
class MyTask extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... strings) {
String urll = strings[0];
try {
URL url = new URL(urll);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setConnectTimeout(5000);
if (connection.getResponseCode() == 200) {
InputStream inputStream = connection.getInputStream();
String json = steamToJson(inputStream);
Log.d(TAG, "doInBackground: ====" + json);
return json;
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
httpLoadListener.loadSuccess(s);
}
}
//接口
public interface HttpLoadListener {
void loadSuccess(String json);
void loadError(String error);
}
//判断网络状态
public static boolean hasNet(Context context) {
//调用系统服务 连接服务
ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
//通过链接管理器 获取可用网络信息
if (manager != null) {
NetworkInfo info = manager.getActiveNetworkInfo();
if (info == null) {
return false;
} else {
return true;
}
}
return false;
}
//使用接口
public void setOnHttpLoadListener(HttpLoadListener httpLoadListener) {
this.httpLoadListener = httpLoadListener;
}
//流转字符串
private String steamToJson(InputStream inputStream) throws IOException {
char[] chars = new char[1024];
int len = 0;
InputStreamReader reader = new InputStreamReader(inputStream);
StringBuffer stringBuffer = new StringBuffer();
while ((len = reader.read(chars)) != -1) {
String s = new String(chars, 0, len);
stringBuffer.append(s);
}
return stringBuffer.toString();
}
}