Android-网络:Http下载字符串(适用网页、XML)

  1. 通过URL地址获得URL实例。
  2. 获取URL连接实例。
  3. 通过连接实例得到二进制流,包装二进制流为字符串流。
  4. 把字符串流包装成缓冲读取流。
  5. 通过while((inputLineString=buffer.readLine())!=null)读取数据。
      btnHttp.setOnClickListener(new OnClickListener() {
              
            @Override
            public void onClick(View v) {
                btnHttp.setEnabled(false);
                
                try {
                    URL url=new URL(httpURL);
                    //获取连接
                    HttpURLConnection conn=(HttpURLConnection)url.openConnection();
                    /**
                     * 通过连接获取二进制流
                     * 并把二进制流包装为字符串流
                     */
                    InputStreamReader in =new InputStreamReader(conn.getInputStream());
                    /**
                     * BufferedReader:
                     * 带缓冲区的输入流来的,可以减少对IO的读写的次数。
                     * 它提供了一个很好用的方法:readLine();可以读取一行的字符串。
                     * 
                     * 把字符串流包装为BufferedReader方便逐行读取
                     */
                    BufferedReader buffer=new BufferedReader(in);
                    
                    String inputLineString=null;
                    String resultString=null;
                    
                    while((inputLineString=buffer.readLine())!=null)
                    {
                        resultString=resultString+inputLineString+"\n";
                    }
                    in.close();
                    conn.disconnect();
                    
                    tvHttp.setText(resultString);
                } catch (MalformedURLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                
            }
        });
posted @ 2012-09-13 18:16  VinceXie  阅读(298)  评论(0编辑  收藏  举报