Android通过URL获取网络数据

来源:互联网 发布:多系统基础数据同步 编辑:程序博客网 时间:2024/05/18 22:43

 本实例主要是通过URL获取网络资源,在具体一点,就是简单介绍如何获取网页文本资源。获取网络资源还有获取图片、视频、音频……资源,框架基本相似。

实验时出现两点小问题:1、抛出Connection Refused的异常;

                                             2、出现乱码。

解决办法:1、由于我用的是本地服务器,就不假思索的以为和WEB的实验一样,只要输入http://localhost:8080/就可以得到实验结果,结果错误,要用网络服务器地址。

                    2、  myString = new String(baf.toByteArray(), "GBK");

                             //myString = EncodingUtils.getString(baf.toByteArray(), "GBK");
                             //myString = new String(baf.toByteArray());这个出现乱码,要在txt文件保存时选中utf-8
                           这三种任选一种。
当然,设置用户权限这个就不用说了!
Code:
  1. package com.web.test;  
  2.   
  3. import java.io.BufferedInputStream;  
  4. import java.io.InputStream;  
  5. import java.net.URL;  
  6. import java.net.URLConnection;  
  7.   
  8. import org.apache.http.util.ByteArrayBuffer;  
  9. import org.apache.http.util.EncodingUtils;  
  10.   
  11. import android.app.Activity;  
  12. import android.os.Bundle;  
  13. import android.widget.TextView;  
  14. /* 
  15.  * 获取网络数据,这里展示如何获取网络上的一个poem.txt文本文件,架设了一个本地服务器 
  16.  */  
  17. public class HelloWeb extends Activity {  
  18.     /** Called when the activity is first created. */  
  19.     @Override  
  20.     public void onCreate(Bundle savedInstanceState) {  
  21.         super.onCreate(savedInstanceState);  
  22.         setContentView(R.layout.main);  
  23.           
  24.         TextView tv = new TextView(this);  
  25.         String myString = null;  
  26.           
  27.         try {  
  28.             URL uri = new URL("http://172.16.194.157:8080/my/my.txt");//注意,这里的URL地址必须为网络地址,  
  29.             //URL uri = new URL("http://localhost:8080/my/poem.txt");  
  30.             //本地地址http://localhost:8080/my/poem.txt会报Connection Refused的异常  
  31.             URLConnection ucon = uri.openConnection();  
  32.             InputStream is = ucon.getInputStream();  
  33.             BufferedInputStream bis = new BufferedInputStream(is);  
  34.             ByteArrayBuffer baf = new ByteArrayBuffer(100);  
  35.             int current = 0;  
  36.             while((current = bis.read()) != -1) {  
  37.                 baf.append((byte)current);  
  38.             }  
  39.               
  40.             myString = new String(baf.toByteArray(), "GBK");  
  41.             //myString = EncodingUtils.getString(baf.toByteArray(), "GBK");  
  42.             //myString = new String(baf.toByteArray());这个出现乱码,要在txt文件保存时选中utf-8  
  43.         } catch(Exception e) {  
  44.             myString = e.getMessage();  
  45.         }  
  46.           
  47.         tv.setText(myString);  
  48.         this.setContentView(tv);  
  49.     }  
  50. }  
修改txt文本文件的编码格式
出现异常
运行成功之后
                   
0 0
原创粉丝点击