package com.example.lenovo.zk3.ui.model;
import android.annotation.SuppressLint;
import android.os.AsyncTask;
import android.os.Handler;
import com.google.gson.Gson;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.logging.LogRecord;
public class NeUtil {
private Handler handler=new Handler();
public interface NetCallBack<T>{
void onsuccess(T t);
}
public void getRequest3(final String apiurl, final Class clazz, final NetCallBack callback){
new Thread(new Runnable() {
@Override
public void run() {
final Object request2 = getRequest2(apiurl, clazz);
handler.post(new Runnable() {
@Override
public void run() {
callback.onsuccess(request2);
}
});
}
}).start();
}
@SuppressLint(“StaticFieldLeak”)
public void getRequest4(String apiurl, final Class clazz, final NetCallBack callback){
new AsyncTask<String,Void,Object>(){
@Override
protected Object doInBackground(String... strings) {
Object request2 = getRequest2(strings[0], clazz);
return request2;
}
@Override
protected void onPostExecute(Object o) {
callback.onsuccess(o);
}
}.execute(apiurl);
}
public <T> T getRequest2(String apiurl,Class clazz){
String request = getRequest(apiurl);
T t= (T) new Gson().fromJson(request, clazz);
return t;
}
public String getRequest(String apiurl){
String result="";
try {
URL url = new URL(apiurl);
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setRequestMethod("GET");
urlConnection.setReadTimeout(5000);
urlConnection.setConnectTimeout(5000);
int responseCode = urlConnection.getResponseCode();
if(responseCode==200){
InputStream inputStream = urlConnection.getInputStream();
result = stream(inputStream);
}
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
private String stream(InputStream inputStream) throws IOException {
StringBuilder stringBuilder = new StringBuilder();
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
for (String temp=bufferedReader.readLine();temp!=null;temp=bufferedReader.readLine()){
stringBuilder.append(temp);
}
return stringBuilder.toString();
}
}