在手机ANDROID中调用WEBSERVICE接口,需要使用ksoap2的JAR包,KSOAP2 地址:http://code.google.com/p/ksoap2-android/

调用 WebService 分以下几步:

1、指定 WebService 的命名空间和调用方法 ;

2、设置调用方法的参数值,如果没有参数,可以省略,设置方法的参数值的代码如下:
rpc.addProperty("abc", "test");
要注意的是,addProperty方法的第1个参数虽然表示调用方法的参数名,但该参数值并不一定与服务端的WebService类中的方法参数名一致,只要设置参数的顺序一致即可。
3、生成调用Webservice方法的SOAP请求信息。

SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.bodyOut = rpc;
envelope.dotNet = false;//这里如果设置为TRUE,那么在服务器端将获取不到参数值(如:将这些数据插入到数据库中的话)
envelope.setOutputSoapObject(rpc);
创建SoapSerializationEnvelope对象时需要通过SoapSerializationEnvelope类的构造方法设置SOAP协议的版本号。
该版本号需要根据服务端WebService的版本号设置。
在创建SoapSerializationEnvelope对象后,不要忘了设置SOAPSoapSerializationEnvelope类的bodyOut属性,
该属性的值就是在第一步创建的SoapObject对象。

4、创建HttpTransportsSE对象。
这里不要使用 AndroidHttpTransport ht = new AndroidHttpTransport(URL); 这是一个要过期的类
private static String URL = "http://www.webxml.com.cn/webservices/weatherwebservice.asmx";
HttpTransportSE ht = new HttpTransportSE(URL);
ht.debug = true;
5、使用call方法调用WebService方法
private static String SOAP_ACTION = "http://WebXml.com.cn/getWeatherbyCityName";
ht.call(SOAP_ACTION, envelope);

6、获得WebService方法的返回结果
有两种方法:
1、使用getResponse方法获得返回数据。
2、使用 bodyIn 及 getProperty。

7、 这时候执行会出错,提示没有权限访问网络
需要修改 AndroidManifest.xml 文件,赋予相应权限
简单来说就是增加下面这行配置:<uses-permission android:name="android.permission.INTERNET"></uses-permission>

更多相关文章

  1. [Android] [SystemUI] Recent -- 最近任务的启动流程
  2. ContentProvider讲解与实例应用
  3. Android使用AOP实现动态权限获取
  4. Android(安卓)GLSurfaceView.Renderer 类 onDrawFrame 方法的刷
  5. Android(安卓)Camera的代码结构
  6. ListView属性及方法android
  7. android 更新界面视图 Handler和runOnUiThread
  8. 【Android学习笔记】Android中Intent的应用方法探索
  9. [Android]_[ACtivity生命周期]

随机推荐

  1. Android架构组件
  2. Android的消息机制分析
  3. 游走Android系列之网络通信
  4. 用 Golang 开发 Android 应用(非 gomobile
  5. android设计模式之Composite
  6. 銆怉ndroid 寮€鍙戞暀绋嬨€戝姩鎬佹坊
  7. android spinner下拉框
  8. Android 软键盘 windowSoftInputMode
  9. android中实现消息推送
  10. Bluetooth 4.0之Android 讲解