封裝網路請求 HttpUrlConnection+AsyncTask
阿新 • • 發佈:2018-11-05
public class HttpConUtils {
//建立一個靜態方法 public void getpath(String path) { MyAsyncTask myAsyncTask = new MyAsyncTask(); myAsyncTask.execute(path); } //自定義一個asyncTask public class MyAsyncTask extends AsyncTask<String,Integer,String>{ @Override protected String doInBackground(String... strings) { try { URL url = new URL(strings[0]); HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection(); httpURLConnection.setRequestMethod("GET"); httpURLConnection.setConnectTimeout(3000); int responseCode = httpURLConnection.getResponseCode(); if (responseCode == httpURLConnection.HTTP_OK){ InputStream inputStream = httpURLConnection.getInputStream(); String s = CharStreams.toString(new InputStreamReader(inputStream, "UTF-8")); return s; } } catch (Exception e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(String s) { super.onPostExecute(s); getDate.setstring(s); } } //寫一個介面 public interface GetDate{ void setstring(String s); } private GetDate getDate; //寫一個監聽,可讓外部訪問 public void getstring(GetDate getDate1) { getDate = getDate1; }
}