第七周随笔--网络请求

2016-06-26  本文已影响0人  關kwan
  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);

上一篇 下一篇

猜你喜欢

热点阅读