`
朱嘉华
  • 浏览: 240455 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

android 数据储存——网络存储(5)

阅读更多

前面介绍的几种存储都是将数据存储在本地设备上,除此之外,还有一种存储(获取)数据的方式,通过网络来实现数据的存储和获取,下面看一个在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文件中加入如下代码申请权限许可:

  1. <!-- Permissions -->  
  2. <uses-permission Android:name="Android. permission.INTERNET" /> 

(2)以HTTP POST的方式发送(注意:SERVER_URL并不是指WSDL的URL,而是服务本身的URL)。实现的代码如下所示:

  1. private static final String SERVER_URL =  "http://www.webservicex.net/WeatherForecast.  asmx/GetWeatherByZipCode"; //定义需要获取的内容来源地址  
  2. HttpPost request = new HttpPost(SERVER_URL);  //根据内容来源地址创建一个Http请求  
  3. // 添加一个变量  
  4. List <NameValuePair> params = new ArrayList <NameValuePair>();  
  5. // 设置一个华盛顿区号  
  6. params.add(new BasicNameValuePair("ZipCode""200120"));  //添加必须的参数  
  7. request.setEntity(new UrlEncodedFormEntity(params,  HTTP.UTF_8)); //设置参数的编码  
  8. try {  
  9. HttpResponse httpResponse = new DefaultHttpClient(). execute(request); //发送请求并获取反馈  
  10. // 解析返回的内容  
  11. if(httpResponse.getStatusLine().getStatusCode() != 404)  
  12. {  
  13.   String result = EntityUtils.toString(httpResponse.getEntity());  
  14.   Log.d(LOG_TAG, result);  
  15. }  
  16. catch (Exception e) {  
  17. Log.e(LOG_TAG, e.getMessage());  

代码解释:

如上代码使用Http从webservicex获取ZipCode为"200120"(美国WASHINGTON D.C)的内容,其返回的内容如下:

  1. <WeatherForecasts xmlns:xsd="http://www.w3.org/2001/ XMLSchema" xmlns:xsi="http: //www.w3.org/2001/XMLSchema- instance" xmlns="http://www.webservicex.net">  
  2.   <Latitude>38.97571</Latitude>  
  3.   <Longitude>77.02825</Longitude>  
  4.   <AllocationFactor>0.024849</AllocationFactor>  
  5.   <FipsCode>11</FipsCode>  
  6.   <PlaceName>WASHINGTON</PlaceName>  
  7.   <StateCode>DC</StateCode>  
  8.   <Details>  
  9.     <WeatherData>  
  10.       <Day>Saturday, April 252009</Day>  
  11.       <WeatherImage>http://forecast.weather.gov/ images/wtf/sct.jpg</WeatherImage>  
  12.       <MaxTemperatureF>88</MaxTemperatureF>  
  13.       <MinTemperatureF>57</MinTemperatureF>  
  14.       <MaxTemperatureC>31</MaxTemperatureC>  
  15.       <MinTemperatureC>14</MinTemperatureC>  
  16.     </WeatherData>  
  17.     <WeatherData>  
  18.       <Day>Sunday, April 262009</Day>  
  19.       <WeatherImage>http://forecast.weather.gov/ images/wtf/few.jpg</WeatherImage>  
  20.       <MaxTemperatureF>89</MaxTemperatureF>  
  21.       <MinTemperatureF>60</MinTemperatureF>  
  22.       <MaxTemperatureC>32</MaxTemperatureC>  
  23.       <MinTemperatureC>16</MinTemperatureC>  
  24.     </WeatherData>  
  25. …  
  26.   </Details>  
  27. </WeatherForecasts> 

这个例子演示了如何在Android中通过网络获取数据,掌握该类内容,开发者需要熟悉java.net.*,Android.net.*这两个包的内容,在这就不赘述了,请读者参阅相关文档。

 

分享到:
评论

相关推荐

    安卓Android源码——安卓Android学习——数据存储.rar

    本压缩包文件"安卓Android源码——安卓Android学习——数据存储.rar"显然是针对安卓数据存储机制的学习资料,其中可能包含了相关的源代码示例和讲解。下面我们将深入探讨安卓中的数据存储方法。 1. **Shared ...

    Android数据存储——SharedPreferences(登入记住密码)

    在Android应用开发中,数据存储是至关重要的一个环节,它涉及到用户信息的持久化,使得应用在退出或设备重启后仍能保持之前的状态。在众多的数据存储方式中,SharedPreferences是一种轻量级的选择,尤其适用于存储小...

    Android数据存储——SharedPrefences、File、Sqlite

    在Android应用开发中,数据存储是至关重要的一个环节,它涉及到应用程序如何持久化地保存用户数据、设置和其他信息。本文将深入探讨三种主要的数据存储方式:SharedPreferences、File和SQLite数据库,以及它们在实际...

    安卓Android源码——安卓Android学习——数据存储.zip

    本资料包“安卓Android源码——安卓Android学习——数据存储.zip”(实际应为rar文件)包含了关于安卓数据存储的学习资源,旨在帮助开发者深入理解这一核心概念。 1. **Shared Preferences** Shared Preferences是...

    AndroidStudio————实战演练——仿美团外卖菜单

    5. **网络请求**:Android应用通常使用HttpURLConnection、OkHttp或者Retrofit等库来发送网络请求,获取菜品信息、用户评论等数据。这些库简化了网络通信,并提供了异步处理机制,避免阻塞主线程。 6. **图片加载库...

    数据存储——存储文件权限

    数据存储在Android移动平台上是一个关键的议题,尤其是涉及到文件权限时。在Android系统中,对文件的访问控制是确保应用程序安全性和用户隐私的重要机制。在本篇内容中,我们将探讨如何管理和测试Android应用中的...

    安卓Android源码——学习之数据存储.zip

    这份“安卓Android源码——学习之数据存储.zip”压缩包很可能是针对Android系统中数据存储方式的源代码分析和教程。在这里,我们将深入探讨Android中的几种主要数据存储方式。 1. **Shared Preferences**: Shared...

    Android缓存——将数据以对象的方式缓存到本地

    本示例"Android缓存——将数据以对象的方式缓存到本地"聚焦于如何将登录的用户名和密码存储到本地,以便后续使用。 一、Android缓存概述 Android提供多种缓存机制,包括内存缓存、磁盘缓存以及更复杂的数据库缓存。...

    浙大android讲义——数据存储实用教案.pptx

    浙大android讲义——数据存储实用教案.pptx

    安卓Android源码——数据的储存与读取.zip

    本资料包"安卓Android源码——数据的储存与读取.zip"可能包含了一些关于如何在Android平台上存储和检索数据的示例代码和讲解,这将帮助开发者更好地理解这一核心概念。 在Android中,有多种数据存储方式,每种都有...

    安卓Android源码——GpsTracker源码.zip

    GpsTracker通常是一个用于追踪和记录GPS定位数据的应用,它可以帮助开发者了解如何在Android系统中利用GPS服务进行实时定位、轨迹记录以及数据存储等功能。 【描述解析】 描述中的 "安卓Android源码——GpsTracker...

    Android源码——数据库SQLite.zip

    总的来说,"Android源码——数据库SQLite.zip"的内容涵盖了SQLite在Android中的使用、数据库的创建与管理、SQL操作、事务处理、性能优化等方面的知识,对于深入理解Android应用的数据存储机制具有很高的学习价值。

    安卓Android源码——Android游戏源码——忍者快跑.zip

    在本压缩包“安卓Android源码——Android游戏源码——忍者快跑.zip”中,包含的是一个基于Android平台的游戏应用源代码,名为“忍者快跑”。这个游戏源码是学习和研究Android游戏开发的理想资源,它能帮助开发者深入...

    Android项目之——漂亮的平台书架.zip

    总之,"Android项目之——漂亮的平台书架"是一个综合性的Android开发实践,涉及到UI设计、数据存储、网络通信、性能优化等多个核心领域,对于提升Android开发者的技术能力和实战经验具有很大价值。

    安卓Android源码——获取网络数据到本地并查看.zip

    在安卓(Android)开发中,获取网络数据并存储到本地是一项常见的任务,这对于实现离线功能、优化用户体验或处理大量网络请求时的数据缓存至关重要。本项目提供的"安卓Android源码——获取网络数据到本地并查看.zip...

    Android学习笔记(十)——实现新闻列表

    【第一部分】历史文章: Android学习笔记(一)——创建第一个Android项目 Android学习笔记(二)android studio基本控件及布局(实现图片查看器) ...Android学习笔记(七)——数据存储(共享参数Share

    Android课程设计——背单词软件

    总之,"Android课程设计——背单词软件"涵盖了Android开发的多个核心方面,包括UI设计、数据存储、用户交互、通知系统、测试以及发布流程。这是一个全面的实践项目,对于理解Android应用开发的全貌具有很高的学习...

    Android课程设计——简易闹钟

    【Android课程设计——简易闹钟】是一个以Android平台为基础,使用Java 8语言开发的简单应用,主要目标是为了满足课程设计的要求。这个闹钟应用程序包含了几个核心组件和技术,包括本地数据库存储、定时任务调度以及...

    安卓Android源码——网络监视器源码.zip

    这个"安卓Android源码——网络监视器源码.zip"压缩包提供了Android系统中网络监控功能的源代码,这对于开发者来说是一个宝贵的资源,可以帮助他们深入了解网络活动的监控机制。 首先,我们关注的是"源码说明.txt...

    Android源码——网络视频播放器源码.zip

    《Android源码——网络视频播放器源码》 在Android平台上开发一款网络视频播放器是一项技术挑战性极高的任务,涉及到多媒体处理、网络通信、UI设计等多个方面。本项目源码提供了一个完整的实现,让我们来深入探讨...

Global site tag (gtag.js) - Google Analytics