Android WebService(基于SOAP协议) 连接方法
来源:互联网 发布:怎么遍历json数组 编辑:程序博客网 时间:2024/05/20 09:07
/* * SoapObject request = new SoapObject(serviceNamespace, methodName); * SoapObject构造函数的两个参数含义为: * serviceNamespace – 你的webservice的命名空间, * 既可以是 * http://localhost:8088/flickrBuddy/services/Buddycast这样的, * 也可以是 * urn:sap-com:document:sap:soap:functions:mc-style这样的; * methodName – 你要调用方法的名字。 */ SoapObject request = new SoapObject(NAMESPACE, methodName);// set up // SoapObject添加参数 /* * 对于webservice方法返回String类型的情况,还用不着开发者做序列化(Serialization)定制工作。 * 要点: * kSOAP1.X/2.0可以自动把四种SOAP类型映射为Java类型 * SOAP type Java type * xsd:int java.lang.Integer * xsd:long java.lang.Long * xsd:string java.lang.String * xsd:boolean java.lang.Boolean 除此之外,都需要开发者自己做类型映射。 */ if (properties != null) { for (Iterator<Map.Entry<String, String>> it = properties.entrySet().iterator(); it.hasNext(); ) { Map.Entry<String, String> entry = it.next(); request.addProperty(entry.getKey(), entry.getValue()); } } /* * SoapSerializationEnvelope envelope =new * SoapSerializationEnvelope(SoapEnvelope.VER11); * envelope.bodyOut = request; * 要点: * 你可以通过SoapSerializationEnvelope或者SoapEnvelope的构造函数来指明你要用SOAP的哪一个规范 * ,可以是以下几种之一: 常量SoapEnvelope.VER10:对应于SOAP 1.0规范 * 常量SoapEnvelope.VER11:对应于SOAP 1.1规范 常量SoapEnvelope.VER12:对应于SOAP 1.2规范 * 这样,无论要调用的webservice采用了哪一个SOAP规范,你都可以轻松应对。 */ SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER10); // put all required data into a soap envelope.dotNet = false; envelope.setOutputSoapObject(request); /* * HttpTransport tx = new HttpTransport(serviceURL); ht.debug = true; * HttpTransport构造函数的参数含义为: serviceURL – 要投递SOAP数据的目标地址,譬如说 * http://soap.amazon.com/onca/soap3 。 * HttpTransport是一个强大的辅助类,来完成Http-call transport * process,它封装了网络请求的一切,你完全不用考虑序列化消息。我们通过设置它的debug属性为true来打开调试信息。 * 方法HttpTransport.call()自己就能够发送请求给服务器、接收服务器响应并序列化SOAP消息,如下所示: * ht.call(null, envelope); HttpTransport的call方法的两个参数含义为: soapAction – * SOAP 规范定义了一个名为 SOAPAction 的新 HTTP 标头,所有 SOAP HTTP 请求(即使是空的)都必须包含该标头。 * SOAPAction * 标头旨在表明该消息的意图。通常可以置此参数为null,这样HttpTransport就会设置HTTP标头SOAPAction为空字符串。 * Envelope – 就是前面我们构造好的SoapSerializationEnvelope或SoapEnvelope对象。 * 注意: * 对于HttpTransport的处理上,kSOAP2和kSOAP1.2的写法不一样。 对于kSOAP * 1.2,HttpTransport的构造函数是HttpTransport (String url, String * soapAction),第二个参数soapAction可以是要调用的webservice方法名。 而kSOAP 2,构造函数是 * HttpTransport(String * url)。kSOAP2相当于把webservice方法名分离出去,完全交给SoapObject去封装 * ,而HttpTransport仅仅负责把SoapEnvelope发送出去并接收响应 */ HttpTransportSE httpTransport = new HttpTransportSE(url); httpTransport.debug = true; try { httpTransport.call(SOAP_ACTION, envelope); SoapObject result = (SoapObject) envelope.bodyIn; for (int i = 0; i < result.getPropertyCount(); i++) { SoapObject obj3 = (SoapObject) result.getProperty(0); System.out.println("theeeeeeeeee" + obj3); } } catch (SocketException ex) { ex.printStackTrace(); } catch (Exception e) { e.printStackTrace(); }
阅读全文
0 0
- Android WebService(基于SOAP协议) 连接方法
- Android WebService(基于SOAP协议)
- Android之webservice,基于soap协议的数据处理
- Android之WebService,基于Soap协议的数据处理
- Android平台调用WebService详解(基于SOAP协议)
- Android WebService(基于SOAP协议)个人记录总结
- android soap协议与webservice
- Android与服务器端数据交互(基于SOAP协议整合android+webservice)
- Android与服务器端数据交互(2)(基于SOAP协议整合android+webservice)
- Android与服务器端数据交互(基于SOAP协议整合android+webservice)
- Android与服务器端数据交互(基于SOAP协议整合android+webservice)
- Android与服务器端数据交互(基于SOAP协议整合android+webservice)
- Android与服务器端数据交互(基于SOAP协议整合android+webservice)
- Android与服务器端数据交互(基于SOAP协议整合android+webservice)
- Android与服务器端数据交互(基于SOAP协议整合android+webservice)
- Android与服务器端数据交互(基于SOAP协议整合android+webservice)
- Android与服务器端数据交互(基于SOAP协议整合android+webservice)
- Android与服务器端数据交互(基于SOAP协议整合android+webservice)
- nginx端口问题
- list array相互之间转换(算法题常用到)
- JAVA 使用插入语句插入记录
- Android五大组件-Service
- 如何对应用进行Android系统签名和常用adb命令总结
- Android WebService(基于SOAP协议) 连接方法
- 1、ThinkPHP源码学习-致命错误捕获及自定义错误输出
- Android7.0中文文档(API)-- TextView
- jsemu
- Android Lint官方静态代码检查工具
- 计算机百科
- java序列化与反序列化总结
- 简易版WireShark实现-效果
- 函数和string对象