前面介绍的几种存储都是将数据存储在本地设备上,除此之外,还有一种存储(获取)数据的方式,通过网络来实现数据的存储和获取,下面看一个在Android上调用WebService的例子。
注意 在Android的早期版本中,曾经支持过进行XMPP Service和Web Service的远程访问。Android SDK 1.0以后的版本对它以前的API作了许多的变更。Android 1.0以上版本不再支持XMPP Service,而且访问Web Service的API全部变更。
1.例子介绍
通过邮政编码查询该地区的天气预报,以POST发送的方式发送请求到webservicex.net站点,访问WebService.webservicex.net站点上提供查询天气预报的服务,具体信息请参考其WSDL文档,网址为:
http://www.webservicex.net/WeatherForecast.asmx?WSDL。
输入:美国某个城市的邮政编码。
输出:该邮政编码对应城市的天气预报。
2.实现步骤如下
(1)如果需要访问外部网络,则需要在AndroidManifest.xml文件中加入如下代码申请权限许可:
- <!-- Permissions -->
-
<uses-permission Android:name="Android.
permission.INTERNET" />
(2)以HTTP POST的方式发送(注意:SERVER_URL并不是指WSDL的URL,而是服务本身的URL)。实现的代码如下所示:
- private static final String SERVER_URL =
"http://www.webservicex.net/WeatherForecast.
asmx/GetWeatherByZipCode"; //定义需要获取的内容来源地址
-
HttpPost request = new HttpPost(SERVER_URL);
-
-
List <NameValuePair> params = new ArrayList <NameValuePair>();
-
-
params.add(new BasicNameValuePair("ZipCode",
"200120"));
-
request.setEntity(new UrlEncodedFormEntity(params,
HTTP.UTF_8));
-
try {
-
HttpResponse httpResponse = new DefaultHttpClient().
execute(request);
-
-
if(httpResponse.getStatusLine().getStatusCode() != 404)
- {
- String result = EntityUtils.toString(httpResponse.getEntity());
- Log.d(LOG_TAG, result);
- }
-
} catch (Exception e) {
- Log.e(LOG_TAG, e.getMessage());
- }
代码解释:
如上代码使用Http从webservicex获取ZipCode为"200120"(美国WASHINGTON D.C)的内容,其返回的内容如下:
- <WeatherForecasts xmlns:xsd="http://www.w3.org/2001/
XMLSchema" xmlns:xsi="http: //www.w3.org/2001/XMLSchema-
instance" xmlns="http://www.webservicex.net">
-
<Latitude>38.97571</Latitude>
-
<Longitude>77.02825</Longitude>
-
<AllocationFactor>0.024849</AllocationFactor>
-
<FipsCode>11</FipsCode>
- <PlaceName>WASHINGTON</PlaceName>
- <StateCode>DC</StateCode>
- <Details>
- <WeatherData>
-
<Day>Saturday, April 25, 2009</Day>
-
<WeatherImage>http:
-
<MaxTemperatureF>88</MaxTemperatureF>
-
<MinTemperatureF>57</MinTemperatureF>
-
<MaxTemperatureC>31</MaxTemperatureC>
-
<MinTemperatureC>14</MinTemperatureC>
- </WeatherData>
- <WeatherData>
-
<Day>Sunday, April 26, 2009</Day>
-
<WeatherImage>http:
-
<MaxTemperatureF>89</MaxTemperatureF>
-
<MinTemperatureF>60</MinTemperatureF>
-
<MaxTemperatureC>32</MaxTemperatureC>
-
<MinTemperatureC>16</MinTemperatureC>
- </WeatherData>
- …
- </Details>
- </WeatherForecasts>
这个例子演示了如何在Android中通过网络获取数据,掌握该类内容,开发者需要熟悉java.net.*,Android.net.*这两个包的内容,在这就不赘述了,请读者参阅相关文档。
分享到:
相关推荐
本压缩包文件"安卓Android源码——安卓Android学习——数据存储.rar"显然是针对安卓数据存储机制的学习资料,其中可能包含了相关的源代码示例和讲解。下面我们将深入探讨安卓中的数据存储方法。 1. **Shared ...
在Android应用开发中,数据存储是至关重要的一个环节,它涉及到用户信息的持久化,使得应用在退出或设备重启后仍能保持之前的状态。在众多的数据存储方式中,SharedPreferences是一种轻量级的选择,尤其适用于存储小...
在Android应用开发中,数据存储是至关重要的一个环节,它涉及到应用程序如何持久化地保存用户数据、设置和其他信息。本文将深入探讨三种主要的数据存储方式:SharedPreferences、File和SQLite数据库,以及它们在实际...
本资料包“安卓Android源码——安卓Android学习——数据存储.zip”(实际应为rar文件)包含了关于安卓数据存储的学习资源,旨在帮助开发者深入理解这一核心概念。 1. **Shared Preferences** Shared Preferences是...
5. **网络请求**:Android应用通常使用HttpURLConnection、OkHttp或者Retrofit等库来发送网络请求,获取菜品信息、用户评论等数据。这些库简化了网络通信,并提供了异步处理机制,避免阻塞主线程。 6. **图片加载库...
数据存储在Android移动平台上是一个关键的议题,尤其是涉及到文件权限时。在Android系统中,对文件的访问控制是确保应用程序安全性和用户隐私的重要机制。在本篇内容中,我们将探讨如何管理和测试Android应用中的...
这份“安卓Android源码——学习之数据存储.zip”压缩包很可能是针对Android系统中数据存储方式的源代码分析和教程。在这里,我们将深入探讨Android中的几种主要数据存储方式。 1. **Shared Preferences**: Shared...
本示例"Android缓存——将数据以对象的方式缓存到本地"聚焦于如何将登录的用户名和密码存储到本地,以便后续使用。 一、Android缓存概述 Android提供多种缓存机制,包括内存缓存、磁盘缓存以及更复杂的数据库缓存。...
浙大android讲义——数据存储实用教案.pptx
本资料包"安卓Android源码——数据的储存与读取.zip"可能包含了一些关于如何在Android平台上存储和检索数据的示例代码和讲解,这将帮助开发者更好地理解这一核心概念。 在Android中,有多种数据存储方式,每种都有...
GpsTracker通常是一个用于追踪和记录GPS定位数据的应用,它可以帮助开发者了解如何在Android系统中利用GPS服务进行实时定位、轨迹记录以及数据存储等功能。 【描述解析】 描述中的 "安卓Android源码——GpsTracker...
总的来说,"Android源码——数据库SQLite.zip"的内容涵盖了SQLite在Android中的使用、数据库的创建与管理、SQL操作、事务处理、性能优化等方面的知识,对于深入理解Android应用的数据存储机制具有很高的学习价值。
在本压缩包“安卓Android源码——Android游戏源码——忍者快跑.zip”中,包含的是一个基于Android平台的游戏应用源代码,名为“忍者快跑”。这个游戏源码是学习和研究Android游戏开发的理想资源,它能帮助开发者深入...
总之,"Android项目之——漂亮的平台书架"是一个综合性的Android开发实践,涉及到UI设计、数据存储、网络通信、性能优化等多个核心领域,对于提升Android开发者的技术能力和实战经验具有很大价值。
在安卓(Android)开发中,获取网络数据并存储到本地是一项常见的任务,这对于实现离线功能、优化用户体验或处理大量网络请求时的数据缓存至关重要。本项目提供的"安卓Android源码——获取网络数据到本地并查看.zip...
【第一部分】历史文章: Android学习笔记(一)——创建第一个Android项目 Android学习笔记(二)android studio基本控件及布局(实现图片查看器) ...Android学习笔记(七)——数据存储(共享参数Share
总之,"Android课程设计——背单词软件"涵盖了Android开发的多个核心方面,包括UI设计、数据存储、用户交互、通知系统、测试以及发布流程。这是一个全面的实践项目,对于理解Android应用开发的全貌具有很高的学习...
【Android课程设计——简易闹钟】是一个以Android平台为基础,使用Java 8语言开发的简单应用,主要目标是为了满足课程设计的要求。这个闹钟应用程序包含了几个核心组件和技术,包括本地数据库存储、定时任务调度以及...
这个"安卓Android源码——网络监视器源码.zip"压缩包提供了Android系统中网络监控功能的源代码,这对于开发者来说是一个宝贵的资源,可以帮助他们深入了解网络活动的监控机制。 首先,我们关注的是"源码说明.txt...
《Android源码——网络视频播放器源码》 在Android平台上开发一款网络视频播放器是一项技术挑战性极高的任务,涉及到多媒体处理、网络通信、UI设计等多个方面。本项目源码提供了一个完整的实现,让我们来深入探讨...