package com.web.test;  
  
import java.io.BufferedInputStream;  
import java.io.InputStream;  
import java.net.URL;  
import java.net.URLConnection;  
  
import org.apache.http.util.ByteArrayBuffer;  
import org.apache.http.util.EncodingUtils;  
  
import android.app.Activity;  
import android.os.Bundle;  
import android.widget.TextView;   
public class HelloWeb extends Activity {  
    /** Called when the activity is first created. */  
    @Override  
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.main);  
          
        TextView tv = new TextView(this);  
        String myString = null;  
          
        try {  
           URL uri = new URL("http://www.baidupcs.com/file/1cb251ec0d568de6a929b520c4aed8d1?xcode=8b8eddcff9b768b0fe3b5383d02719e1682db0a8df3ab0c0&fid=2987144212-250528-3553184730&time=1379061716&sign=FDTAXER-DCb740ccc5511e5e8fedcff06b081203-IajFP7ZTY8WIHqM2f7Ao%2BQKeNbQ%3D&to=wb&fm=N,B,M,mn&expires=8h&rt=sh&r=128013118&logid=2936171168&sh=1&fn=test.txt");  
            
            URLConnection ucon = uri.openConnection();  
            InputStream is = ucon.getInputStream();  
            BufferedInputStream bis = new BufferedInputStream(is);  
            ByteArrayBuffer baf = new ByteArrayBuffer(100);  
            int current = 0;  
            while((current = bis.read()) != -1) {  
                baf.append((byte)current);  
            }  
              
            myString = new String(baf.toByteArray(), "GBK"); 
        } catch(Exception e) {  
            myString = e.getMessage();  
        }  
          
        tv.setText(myString);  
        this.setContentView(tv);  
    }  
}  求大神看一下哪里出问题了?在真机上测试总会抛出异常。

解决方案 »

  1.   

    网络操作要在一个新线程里做,不能放在UI主线程,否则会导致UI反应慢或者ANR。
    4.0以后强制要求这么做,否则会报android.os.NetworkOnMainThreadException。
      

  2.   


    问题是我是在安卓2.3平台上测试的。每次测试总会跳到catch(Exception e) {  
                myString = e.getMessage();  
            }  这个语句里
      

  3.   


    抛出的异常是java.net.UnknownHostException:www.baidupcs.com
      

  4.   

    我试了能取到一个“text”的字串啊,是正常的。
    你Manifest里面有没有加这个权限:
    <uses-permission android:name="android.permission.INTERNET"/>
    有这个才能联网