public class MyNetTask extends AsyncTask<String,Void,String> {
//2.申明接口对象
private IcallBack icallBack;
//3.创建构造方法,将接口传进来
public MyNetTask(IcallBack icallBack) {
this.icallBack = icallBack;
}
@Override
protected String doInBackground(String... strings) {
StringBuilder builder=new StringBuilder();
//1.根据url创建URL
try {
URL url=new URL(strings[0]);
//2.打开连接
HttpURLConnection conn =(HttpURLConnection) url.openConnection();
//3.设置
conn.setRequestMethod("GET");
conn.setConnectTimeout(5000);
conn.setReadTimeout(5000);
//4.判断结果码
if(conn.getResponseCode()==200){
//5.获取数据
InputStream inputStream = conn.getInputStream();
BufferedReader reader=new BufferedReader(new InputStreamReader(inputStream));
String str;
while ((str=reader.readLine())!=null){
builder.append(str);
}
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
Log.d("zzz",builder.toString());
return builder.toString();
}
@Override
protected void onPostExecute(String s) {
icallBack.getJsonData(s);
}
//1.定义一个接口
public interface IcallBack{
void getJsonData(String jsonStr);
}
//2.申明接口对象
private IcallBack icallBack;
//3.创建构造方法,将接口传进来
public MyNetTask(IcallBack icallBack) {
this.icallBack = icallBack;
}
@Override
protected String doInBackground(String... strings) {
StringBuilder builder=new StringBuilder();
//1.根据url创建URL
try {
URL url=new URL(strings[0]);
//2.打开连接
HttpURLConnection conn =(HttpURLConnection) url.openConnection();
//3.设置
conn.setRequestMethod("GET");
conn.setConnectTimeout(5000);
conn.setReadTimeout(5000);
//4.判断结果码
if(conn.getResponseCode()==200){
//5.获取数据
InputStream inputStream = conn.getInputStream();
BufferedReader reader=new BufferedReader(new InputStreamReader(inputStream));
String str;
while ((str=reader.readLine())!=null){
builder.append(str);
}
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
Log.d("zzz",builder.toString());
return builder.toString();
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
icallBack.getJsonData(s);
}
//1.定义一个接口
public interface IcallBack{
void getJsonData(String jsonStr);
}
}
在别处调用时
MyNetTask task=new MyNetTask(new MyNetTask.IcallBack() { @Override public void getJsonData(String jsonStr) { List<String> urls=new ArrayList<>(); Gson gson=new Gson(); Result result = gson.fromJson(jsonStr, Result.class); List<Result.DataScrollBean> dataScroll = result.getDataScroll(); for (int i = 0; i <dataScroll.size() ; i++) { urls.add(dataScroll.get(i).getIMAGEURL()); } setBanner(urls); } }); task.execute("http://www.93.gov.cn/93app/data.do?channelId=0&startNum=0");