最近公司做了一个android客户端,我们的系统是用.NET开发的 当我们开发.NET以外的程序的时候 需要用web service才能跨平台的通信 我们这里用WCF服务,

下面我把代码内容记录下来,方便以后再开发Android时复习。

在调用微软WCF之前,在eclipse 中,需要下载这样一个ksoap2包,导入到eclipse中,先对调用WCF服务操作的步骤如下:

1、创建HttpTransportSE对象,该对象用于调用WCF服务操作,

2、创建SoapSerializationEnvelope对象,这个是HttpTransportSE调用WCF信息的载体,Client需要传入的参数,需要通过SoapSeralizationEnvelope对象属性bodyOut传给 Service,然后Service响应生成SOAP消息也通过该对象属性的bodyIn来获取信息

3、创建SoapObject对象,创建该对象时需要传入所要调用WCF的namespace(命名空间)和调用方法名

4、如果不需要穿参数,这个步骤可以忽略,这个步骤是给WCF方法传入参数的,用SoapObject对象的addProoperty(name,obj),该方法name代表参数名(这个参数名必须与WCF方法参数名一致),obj代表传参数值

5、用SoapSerializationEnvelope对象属性bodyOut接受SoapObject对象 这个对象就是所要发送的数据请求,这里是调用的是WCF 是属于.NET ,我们需要SoapSerializationEnvelope对象属性dotNet设置为true;

6、调用HttpTransportSE对象的call方法 把参数传进去,第一个参数是soapAction 只需要把namespace+方法名写上指定action ,第二个参数就是SoapSerializationEnvelope对象,这里面封装好了数据请求。

7、call过后,用SoapSerializationEnvelope对象属性bodyIn 返回的是一个SoapObject对象 该对象就是WCF返回的消息。解析这个对象就可以获取里面的值

下面是代码:

HttpTransportSE httpTransportSE=new HttpTransportSE(URL_STRING);//URL_STRING是WCF地址SoapSerializationEnvelope envelope=new SoapSerializationEnvelope(SoapEnvelope.VER11);//这里的版本是1.1的 SoapObject object=new SoapObject(NA_STRING, methodName); //object.addProperty('str','zhangsan');这里是参数envelope.bodyOut=object;envelope.dotNet=true;try {httpTransportSE.call("http://tempuri.org/IMobileSync/"+methodName, envelope);SoapObject result=(SoapObject)envelope.bodyIn;return result;} catch (Exception e) {// TODO: handle exceptionLog.d("webservice异常",e.getMessage());e.getStackTrace();}return null;

  

更多相关文章

  1. 快速上手Android数据库操作
  2. Android序列化Serializable和Parcelable的理解和区别
  3. 解析 ViewTreeObserver 源码,体会观察者模式、Android消息传递(下)
  4. Android(安卓)的启动流程-转
  5. Android横竖屏切换问题
  6. android横竖屏总结
  7. mybatisplus的坑 insert标签insert into select无参数问题的解决
  8. 类和 Json对象
  9. Python技巧匿名函数、回调函数和高阶函数

随机推荐

  1. Intent应用详解
  2. 【专访】爱图腾高级架构师 李鹏军:手机音
  3. 【255期门诊集锦】一起步入Android应用开
  4. android网游开发之socket的简单设计和实
  5. Android平台上关于IM的实践总结
  6. Android(安卓)摇一摇开发——灵敏度优化
  7. Android单位区别与转化
  8. Android(安卓)屏幕尺寸适配大全
  9. 安卓开发中调用WebService实例
  10. android 优秀源码