1. 程式人生 > >封裝網路請求 HttpUrlConnection+AsyncTask

封裝網路請求 HttpUrlConnection+AsyncTask

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;
}

}