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); //根据内容来源地址创建一个Http请求
// 添加一个变量
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://forecast.weather.gov/images/wtf/sct.jpg</WeatherImage>
<MaxTemperatureF>88</MaxTemperatureF>
<MinTemperatureF>57</MinTemperatureF>
<MaxTemperatureC>31</MaxTemperatureC>
<MinTemperatureC>14</MinTemperatureC>
</WeatherData>
<WeatherData>
<Day>Sunday, April 26, 2009</Day>
<WeatherImage>http://forecast.weather.gov/images/wtf/few.jpg</WeatherImage>
<MaxTemperatureF>89</MaxTemperatureF>
<MinTemperatureF>60</MinTemperatureF>
<MaxTemperatureC>32</MaxTemperatureC>
<MinTemperatureC>16</MinTemperatureC>
</WeatherData>
…
</Details>
</WeatherForecasts>
这个例子演示了如何在Android中通过网络获取数据,掌握该类内容,开发者需要熟悉java.net.*,Android.net.*这两个包的内容,在这就不赘述了,请读者参阅相关文档。
分享到:
相关推荐
Android平台之Webservice详解(超详细),Android平台之Webservice详解(超详细),Android平台之Webservice详解(超详细)
android webserviceandroid webserviceandroid webservice
从Android端用io流读取到要上传的图片,用Base64编码成字节流的字符串,通过调用webservice把该字符串作为参数传到服务器端,服务端解码该字符串,最后保存到相应的路径下。整个上传过程的关键就是 以 字节流的字符...
android 调用.net webservice
ANDROID中使用WEBSERVICE验证用户登录的示例
Android 利用axis2 调用webservice 包含j2ee服务端代码和Android客户端代码 代码实现包含 List,map ,对象传递
java android 调用webservice,java android 调用webservice
Android开发之WebService介绍
Android通过IIS搭建WebService访问 SQLServer,实现增、删、查
Android与服务器端数据交互(基于SOAP协议整合android+webservice)
android登录,webservice连接sql数据库,布局实现界面切换 c#用的vs2008,数据库自己看c#代码
利用NanoHttpd,在Android APP上搭建类似webservice的服务,可供其他H5程序通过web页面调用、访问、返回数据。
此文档介绍了Android调用天气预报的WebService简单例子。
Android调用Java WebService的实现方法.pdf
android与C# WebService基于ksoap通信
Android应用源码WebService+ksoap2天气查询项目.zip
android 客户端与webservice之间的交互,服务器端采用java web编写,值得参考
Android通过webservice连接SqlServer实例(Android4.0可运行)从原博http://blog.csdn.net/zhyl8157121/article/details/8169172下载下来的demo,看了评论和其它文章后修改,解决了Android2.3以上StrictMode模式下不...
delphi XE5 ANDROID平台 调用 webservice并访问操作MSSQL数据库
认真读完对ksoap2的介绍你会发现并没有提及它应用于Android平台开发,没错,在Android平台中我们并不会直接使用ksoap2,而是使用ksoap2 android。KSoap2 Android 是Android平台上一个高效、轻量级的SOAP开发包,等同...