Android-通过URL获取网络资源
1、先在AndroidManifest.xml中注册加入访问因特网服务的权限:
<uses-permission android:name="android.permission.INTERNET" />
(若不加入,则会出现permission denied异常)
2、代码如下:
package vip.test.HttpGet;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 vip.test.HttpGet.R;import android.app.Activity;import android.os.Bundle;import android.widget.TextView;public class HttpGet extends Activity {/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);TextView tv = new TextView(this);String myString = null;try {// 定义获取文件内容的URLURL myURL = new URL("HTTP://www.baidu.com/hello.txt"");// 打开URL链接URLConnection ucon = myURL.openConnection();// 使用InputStream,从URLConnection读取数据InputStream is = ucon.getInputStream();BufferedInputStream bis = new BufferedInputStream(is);// 用ByteArrayBuffer缓存ByteArrayBuffer baf = new ByteArrayBuffer(50);int current = 0;while ((current = bis.read()) != -1) {baf.append((byte) current);}// 将缓存的内容转化为String,用UTF-8编码myString = EncodingUtils.getString(baf.toByteArray(), "UTF-8");} catch (Exception e) {myString = e.getMessage();}// 设置屏幕显示tv.setText(myString);this.setContentView(tv);}}