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();
}
}
在这里插入代码片
继续阅读与本文标签相同的文章
上一篇 :
大家好,给大家介绍一下,这是我的智能伙伴…..
下一篇 :
python之抓取微信公众号文章系列3
-
Python Threading 学习笔记 | 5、不一定有效率GIL
2026-05-18栏目: 教程
-
使用 Docker 部署 Spring Boot 项目
2026-05-18栏目: 教程
-
发布订阅模式
2026-05-18栏目: 教程
-
Docker 用ansible给主机安装docker
2026-05-18栏目: 教程
-
Docker centos7 with sshd (sshd centos7 常用镜像)
2026-05-18栏目: 教程
