老杂毛博客
  青青子衿,悠悠我心。但为君故,沉吟至今。
博客首页 | 人生历程 | 编程开发 | 机关门  
  文章分类
 
博客首页 > 软件网络编程 > 文章正文

Android请求网页数据

2011/8/17 18:07:21
 

   据说用Android请求网络数据有很多种方法,第一种是基于http协议的,第二种:不会。。。第三种:不会。

那么我们就来说说如何用http协议获得一个网页上的数据。当然可以是Json数据,至于如何解析Json不是本章解释的内容,下面我们就来请求一个页面试试。

测试页面:http://www.laozamao.com/robots.txt 

首先我们需要导入几个包:

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;

然后在onCreate方法里面加上如下代码:

        super.onCreate(savedInstanceState);
        TextView tv = new TextView(this);
        setContentView(tv);
        String myString =null;
        try
        {
         URL url = new URL(http://www.laozamao.com/robots.txt);
         URLConnection ucon = url.openConnection();
         InputStream inStream = ucon.getInputStream();
         BufferedInputStream bis=new BufferedInputStream(inStream);
        
         ByteArrayBuffer baf=new ByteArrayBuffer(50);
         int current=0;
        
         while((current=bis.read())!=-1)
         {
          baf.append((byte)current);
         }
         myString=EncodingUtils.getString(baf.toByteArray(), "UTF-8");
        }
        catch(Exception e)
        {
         myString=e.getMessage();
        }
        tv.setText(myString);
        this.setContentView(tv);

 由于从网络上请求下来的数据是流形式的,所以我们用BufferedInputStream做了一个中介转换了一下,最终转化为一个String形式的放到了一个TextView里面展示了出来。我们运行一下看:

额,奇怪的事发生了,为什么说是没有权限许可呢?这是因为我们没有在android的配置文件里把这个权限打开,很多人都是因为犯了这个错误才请求不到数据的,Ok,我们打开AndroidManifest.xml文件,然后加上如下语句:

#lt;uses-permission android:name="android.permission.INTERNET" /#gt;

OK,我们再来测试一下。

OK,测试成功,这里显示的数据正是我博客下的robots.txt文件里的内容。

阅读: (1634)  评论(5)  
 
网友评论:
 
 1.2016/5/13 21:15:23 
 2.2016/10/29 15:30:50 
 3.2016/11/17 5:20:48 
 4.2018/3/31 9:15:33 
 
相关文章:
 微信支付asp.net V3.3.7 sys
 ERRORLOG 文件太大的处理办法
 Attempted to read or w
 Ctrl键自动按下,Ctrl键和Alt总感觉
 解决 Your project contai
 adb install 多设备id号一样,如
 如何去掉优酷,土豆等网站的广告?
 webview的loadData方法加载乱码
 让iis7支持apk文件下载
 sql利用游标循环,遍历表循环结果集
 
 
     
联系作者: QQ: 657603425 Email: [email protected]
Copyright © 2007-2014 www.laozamao.com All Rights Reserved
京ICP备09002242号 北京海淀分局备案号:1101084842