首页 > 代码库 > Android入门笔记 - 数据存储 - 网络

Android入门笔记 - 数据存储 - 网络

       网络作为android的数据存储的一种,那么极大的扩大了app的使用范围,因为任何信息我们都可以从网络上获取,试想一下我们自己搭建一个服务器,然后通过app向服务器请求数据,那么要修改显示数据的时候,我们只需要修改服务器上的数据,app只是一个显示载体。目前确实有很多app是这样开发的,在app内部可以嵌套一个浏览器,当然也可以使用android自带的webview,那么开发就可以分开了,android的做android的部分,网站的做网站的部分,极大的提高了开发效率,而且也增加了app的功能和多样性,是不是很赞。今天我们来简单介绍一下android通过网络来获取数据:


用作测试,我在自己机器上搭建了一个Tomcat7.0服务器,很简单,搭建可以参照其他博客搭建一个,用作自己测试很方便。然后创建了一个网站项目(Web1),在网站中放置了一个txt文件: android.txt. 然后我们看怎么通过网络来获取并读取它的内容。


这两个文件是相当于服务器上的文件:


我们来看看android的代码:

        getNetDataBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                try {
                    URL url = new URL(
                            "http://192.168.1.23:8080/Web1/android.txt");
                    URLConnection urlConn = url.openConnection();
                    InputStream is = urlConn.getInputStream();
                    byte[] buffer = new byte[is.available()];
                    is.read(buffer);
                    String words = EncodingUtils.getString(buffer, "UTF-8");
                    Log.e(TAG, "words:" + words);

                } catch (IOException e) {
                    e.printStackTrace();
                }

            }
        });

这里就没有贴出全代码了,Mainactivity里面就一个按钮,点击相应获取文件数据。

获取的结果:



注意:

1. http://192.168.1.23:8080/Web1/android.txt 这个地址中,192.168.1.23 是我在局域网中的IP地址,这里就android模拟器就不要使用127.0.0.1来访问本机上的服务器了,因为这个地址已经被android模拟器自己占用,所以要用局域网ip地址访问。 8080是端口号,根据你自己的服务器配置而定。

2. 我们在将字节流转化为string的时候,最好是指定编码格式,通常的做法就是使用 EncodingUtils来转换,UTF-8是一种编码格式,也可以使用GB2312等,自己去查看一些资料吧。这个格式应该是按照服务器上这个文件的格式来确定的。

3. android中访问网络需要权限:    <uses-permission android:name="android.permission.INTERNET"/>



这个例子很简单,只是为了引导一下,以后再做详解!




Android入门笔记 - 数据存储 - 网络