package cn.zhaoliang5156.zhaoliang2018727.net;
import android.os.AsyncTask;
import android.text.TextUtils;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
public class HttpUtils {
private static final HttpUtils ourInstance = new HttpUtils();
public static HttpUtils getInstance() {
return ourInstance;
}
private HttpUtils() {
}
public void getDataFromServer(String url, NetCallback callback) {
new LoadDataTask(callback).execute(url);
}
class LoadDataTask extends AsyncTask<String, Void, String> {
private NetCallback callback;
public LoadDataTask(NetCallback callback) {
this.callback = callback;
}
@Override
protected String doInBackground(String... strings) {
try {
URL url = new URL(strings[0]);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setConnectTimeout(5000);
connection.setReadTimeout(5000);
if (connection.getResponseCode() == HttpURLConnection.HTTP_OK) {
return inputStream2String(connection.getInputStream());
}
} catch (Exception e) {
callback.onError(e.getMessage());
}
return null;
}
@Override
protected void onPostExecute(String s) {
if (!TextUtils.isEmpty(s)) {
callback.onSuccess(s);
} else {
callback.onError("没有数据");
}
}
}
private String inputStream2String(InputStream inputStream) throws IOException {
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
int len = -1;
byte[] b = new byte[1024];
while ((len = inputStream.read(b)) != -1) {
outputStream.write(b, 0, len);
}
return new String(outputStream.toByteArray());
}
public interface NetCallback {
void onSuccess(String result);
void onError(String errorMsg);
}
}
package cn.zhaoliang5156.zhaoliang2018727.net;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
public class NetUtils {
/**
* 判断是否有网
*
* @param context
* @return
*/
public static boolean isNetConnect(Context context) {
ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = manager.getActiveNetworkInfo();
return networkInfo.isAvailable();
}
}