`
peizhiinfo
  • 浏览: 1429614 次
文章分类
社区版块
存档分类
最新评论

android之webService

 
阅读更多

现在大多数写关于android 网络webservice 会用到一个接口 ksoap2 .0
ksoap2 .0接口介绍
org.ksoap2. SoapEnvelope,[数据封装者]
org.ksoap2. SoapSerializationEnvelope,[有序列化功能的数据封装者]
org.ksoap2. SoapObject,[代表请求/相应对象]
org.ksoap2.transport. HttpTransport[封装通信过程]

下面是ksoap2与webservice的通讯过程
创建:
SoapObject request = new SoapObject(serviceNamespace, methodName);参数1是命名空间,参数2是要调用的方法的名字
request .addProperty(string,string ); //要传给服务端的参数 键值 例如天气程序中 这里传递的是城市名称

封装:
SoapSerializationEnvelope envelope=new SoapSerializationEnvelope(SoapEnvelope.VER11);//告诉SoapSerializationEnvelope把构造好的SoapObject封装进去:
envelope.bodyOut=sobject;
envelope.dotNet=true;
envelope.setOutputSoapObject(request);
这一部分是封转你要传递的数据

提交并等待应答:
AndroidHttpTransport ht=new AndroidHttpTransport(URL);//投递SOAP数据的目标地址
ht.debug=true;
ht.call(SOAP_ACTION, envelope); //等待调用

获取结果:
SoapObject result=(SoapObject) envelope.bodyIn;
SoapObject detail=(SoapObject) result.getProperty(String);//类似于获取服务端返回复杂节点的一个内接点String

根据具体情况来解析复杂对象:
例如:String mstr=detail.getProperty(index).toString();//detail是获取的对象,index是要获得第几个参数

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics