QtSOAP是Qt对标准SOAP协议的支持库,遵循LGPL协议发布。现在公司的项目是基于微软WCF的Webservice做的,之前是再将服务发布JSON格式,客户端直接访问的,很简单。但是现在WCF的人们都很忙,没时间给修改这个东西。只好在客户端来做工作支持WCF的Webservice。
WCF的Webservice和QtSoap支持的格式有所区别。将envelope命名空间修改为了"http://www.w3.org/2003/05/soap-envelope"
,新增加了
"http://www.w3.org/2005/08/addressing"
和
"http://schemas.datacontract.org/2004/07/"两个命名空间。第一个是在头部对Action和访问地址的定义,第二个是body中
对数据实体类命名空间的定义。
soap XML头部新添加了Action和To节点属于addressing命名空间,并且必须要有属性
<!--
p, li { white-space: pre-wrap; }
-->s:mustUnderstand="1"。
soap XML Body结构为:
|method(访问方法)
|_class(参数实体类)
|_class field(属性字段)
属性字段如果为类,择需要嵌套定义class和其下所有字段。
WCF的节点定义顺序似乎是有顺序限制的。所以我通过对访问的封包截获按照其顺序来定义SOAP的XML文件。
<!-- EndFragment-->
<!-- EndFragment-->
QtSoap的结构中缺少addressing和实体类的定义,头部没有Action和To节点,只支持字符串类型的方法参数添加,而不能支持对象类型,
他对方法节点下只能添加一级的Node。
这里需要对头部增加action和To的构造。构造好类的Node节点以字符串的形式传入,这里注意,这里Qt的Dom类会对<字符做转义处理
为<,在发送soap请求前需要将其替换成<才行。
这样简单的对WCF webservice的支持就修改完成了。
<!-- EndFragment-->
分享到:
相关推荐
WCF服务,配置可同时支持web调用和WCF调用,可以用于C#程序服务访问,也支持java等程序访问。java通过web调用,C#可以通过wcf访问。
WCF服务学习1,2WCF服务学习1,2WCF服务学习1,2WCF服务学习1,2WCF服务学习1,2WCF服务学习1,2
本示例共包含四个模块,演示了C# WinForm承载WCF服务程序集,再使用C#程序集封装了对该WCF的访问API,然后在MFC对话框程序中封装的API,成功实现了对WCF的访问。 环境:VC++2010
通过jquery中的ajax访问WCF服务,可以前台向后台传递数据,后台向前台传递数据。
JS调用WCF服务实例(WCF服务宿主到控制台),解决Js跨域调用问题 源码实例 wcf宿主到控制台上,并内置js调用服务的源码
wcf实用例子包含2中方式,分别是iis版本和windows服务版本,很实用
C#POST请求WCF服务,带输入参数和返回值,输入参数是json字符串格式。
WCF是微软对一系列产业标准定 义的实现,包括服务交互、类型转换、封送( Marshaling)以及各种协议的管理。正因 为如此, WCF 才能够提供服务之间的互操作性。 WCF 还为开发者提供了大多数应用程 序都需要的基础...
《WCF Service编程》是一本关于Windows ... 这些内容由50余个原创工具、帮助类和70多张设计图组成,有益于弥补你对WCF本身理解的疏漏,也有助于简化和自动化某些任务,可帮助你提升生产力和WCF服务程序的质量
WCF服务编程 源代码 Program WCF Service
wcf服务引用失败的原因多种多样,此例吃力的原因是因为粗心大意,很难发现的错误引起的,提供给同仁,引以为戒。
WCF服务寄宿Windows service服务,并用wpf应用程序为客户机访问,解决方案在本机编译成功运行,可以查看里面的app.config了解配置信息。
Web服务和WCF服务 Web服务和WCF服务
当前pdf总共有7个部分: WCF服务编程中文版_1 WCF服务编程中文版_2 WCF服务编程中文版_3 WCF服务编程中文版_4 WCF服务编程中文版_5 WCF服务编程part1 WCF服务编程part2
wcf,c#调用wcf 服务,包括 服务器端,客服端 简单示例供参考
java 访问 wcf 示例(使用的HttpClient)
WcfServiceLibrary1--- wcf服务:生成dll文件给宿主引用 WinFormsWcfService--- 宿主 WcfClient---调用wcf服务客户端
演示如何在silverlight中实现间接的WCF服务调用。 间接调用WCF服务是指,在SL项目1中调用站点A的WCF服务,在SL项目2中引用项目1,并使用其中的服务类向站点B发起WCF服务访问。
WCF服务编程 中文版,总共六部分 WCF服务编程 中文版,总共六部分