Chinaunix首页 | 论坛 | 博客
  • 博客访问: 298927
  • 博文数量: 53
  • 博客积分: 1266
  • 博客等级: 少尉
  • 技术积分: 572
  • 用 户 组: 普通用户
  • 注册时间: 2011-07-16 16:45
文章分类

全部博文(53)

文章存档

2012年(37)

2011年(16)

分类: 嵌入式

2011-10-15 11:17:42

【准备】
 1、找到可测试的webservice服务

页面中有以下信息:

======================================================

getWeather

获得天气预报数据

输入参数:城市/地区ID或名称,返回数据:一维字符串数组

=====================================================

点击getWeather

从上述页面可以获取以下信息:

SOAPAction: ""

其中xmlns就是NAMESPACE

以及传送参数名theCityCode

2、创建android项目

Action类的onCreate方法中实现连接webservice功能

 

3、在项目中加入第三方包ksoap

下载地址:

点击View raw file 下载

然后在项目中加入第三方包

 

【实现android连接webservice功能】
1、       创建字段

// 名空间

private static final String NAMESPACE   = "";

// 网址

private static String       URL         = "";

// 方法名

private static final String METHOD_NAME = "getWeather";

// SOAPACTION

private static String       SOAP_ACTION = "";

 

2、       获取Soap对象并设置传送参数值

SoapObject rpc = new SoapObject(NAMESPACE, METHOD_NAME);

rpc.addProperty("theCityCode", cityName);

 

3、    创建SoapSerializationEnvelope对象

SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);

envelope.bodyOut = rpc;

envelope.dotNet = true;

envelope.setOutputSoapObject(rpc);

其中SoapEnvelope.VER11是指SOAP 1.1

 

4、创建HttpTransportsSE对象

HttpTransportSE ht = new HttpTransportSE(URL);

ht.debug = true;

 

5、使用call方法调用WebService方法

ht.call(SOAP_ACTION, envelope);

 

6、获得WebService方法的返回结果

方法一:

detail =(SoapObject) envelope.getResponse();

方法二:

SoapObject result = (SoapObject)envelope.bodyIn;

detail = (SoapObject) result.getProperty("getWeatherbyCityNameResult");

 

7、解析SoapObject对象

for (int i = 0; i < detail.getPropertyCount(); i++) {

    System.out.println("detail.getProperty(" + i + ")"                        + detail.getProperty(i));

}

 

8、设置访问网络的权限

AndroidManifest.xml 文件中加入uses-permission项,如下:

   

        ...

   

 

【小技巧】
1、 如何查看System.out.println显示的结果

eclipse中,窗口》显示视图》其他android—LogCat

 

阅读(11159) | 评论(0) | 转发(0) |
0

上一篇:Java 获取绝对路径

下一篇:Android 菜单操作

给主人留下些什么吧!~~