public class MyTask extends AsyncTask<String,Void,String> { //2.申明接口类型变量 private ICallBacks iCallBacks; //4.传入实现此接口的类对象 public MyTask(ICallBacks iCallBacks) { this.iCallBacks = iCallBacks; } @Override protected String doInBackground(String... strings) { try { URL url=new URL(strings[0]); HttpURLConnection connection =(HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); connection.setReadTimeout(5000); connection.setConnectTimeout(5000); if(connection.getResponseCode()==200){ InputStream inputStream = connection.getInputStream(); String s=StreamToStingUtis.streamToString(inputStream); return s; } } catch (Exception e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(String s) { super.onPostExecute(s); //3.调用接口 iCallBacks.getJson(s); //iCallBacks=new MainActivity(); // iCallBacks.getJson(s); } //1.定义一个接口 public interface ICallBacks{ void getJson(String json); } }
public class StreamToStingUtis { public static String streamToString(InputStream stream){ ByteArrayOutputStream outputStream=null; try { outputStream = new ByteArrayOutputStream(); byte[] bytes=new byte[1024]; int len; while ((len=stream.read(bytes))!=-1){ outputStream.write(bytes,0,len); } } catch (IOException e) { e.printStackTrace(); } return outputStream.toString(); } }