第七周隨筆--網絡請求

  1. 需要異步處理,所以構造一個異步處理的類
    //異步任務處理
    class RequestNetworkDataTask extends AsyncTask<String, Integer, String> {
    //在后臺處理之前觸發
    //這個在主線程中
    @Override
    protected void onPreExecute() {
    super.onPreExecute();
    }

        //后臺處理    
        //這個在另一個線程執行    
        @Override    
        protected String doInBackground(String... params) {
            //此處的RequestData()是自己封裝的返回網絡請求的一個方法
            String result = RequestData(params[0]);
            return result;   
        }   
    
        //后臺處理完之后
        //這個在主線程中執行    
        //里面的參數s是doInBackground()的返回結果    
        @Override
        protected void onPostExecute(String s) {
            super.onPostExecute(s);        
            mTvResult.setText(s); 
        }
    }
    /*--------------------------------------------------------------------*/
    //請求網絡數據
    private String RequestData(String urlString) {    
        try {        
            URL url = new URL(urlString);
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();       
            //設置超時時間
            connection.setConnectTimeout(30000); 
            connection.setRequestMethod("GET"); 
            connection.connect(); 
            int responsecode = connection.getResponseCode(); 
            String responseMessage = connection.getResponseMessage();    
            String result = null;
            if (responsecode == HttpURLConnection.HTTP_OK) { 
                InputStream inputStream = connection.getInputStream();   
                Reader reader = new InputStreamReader(inputStream, "UTF-8");         
                char[] buffer = new char[1024];
                reader.read(buffer); 
                result = new String(buffer); 
            } 
            return result; 
        } catch (MalformedURLException e) {      
            e.printStackTrace();    
        } catch (IOException e) {  
            e.printStackTrace();  
        } 
        return null;
    }
    
  2. 寫完方法后就new剛才的類,即
    //url是一個鏈接地址
    new RequestNetworkDataTask().execute(url);

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容