分享

Qt实现访问WebService

 cwhbox 2011-08-28

日志

Qt实现访问WebService

Freer 2010年05月11日 23:07 阅读(9) 评论(0) 分类:Qt

    之前也许是因为根本不用的原因吧,,,根本没有想过Qt访问WebService的方式....

       

    要解决这个问题,因为Qt现行版没有提供直接访问的类库...首先是一些必备知识,


    我连的服务器是用VS2010建的只有 string helloworld() 和string getHello(string str)两个接口的iis服务器.


    Qt对xml文档操作和WebService原理,特点和通信方式....这个可以看http://user.qzone.qq.com/380411306/blog/1273588842?ptlang=2052&ADUIN=952147772&ADSESSION=1273588927&ADTAG=CLIENT.QQ.2785_FriendTip_QzoneFolder.0


    针对这个我一共进行了三种尝试,,,

第一种,

    先用Qt的QNetworkAccessManager类实现与WebService建立连接,,

    然后用QNetworkReply类实现与WebService的通信,当然这种通信只是异步流的通信,,,,你会收到WebService的整个XML网页,,,

    接着,就是自己根据SOAP协议规则解析XML,按,SOAP的协议规则和WebService通信

    最后,把自己写好的请求XML串行化,发给WebService,

现在为止,第一种尝试并没有成功,,因为做这个尝试的时候,对SOAP还不是很不了解,,,不过可以肯定的是,这种办法是可行的...


第二种,

    用了第三方 C++的gsoap开源库,这是一位网友提供的,,,他的博客:http://blog.csdn.net/tingsking18/archive/2010/04/07/5456831.aspx里有详细的介绍....


第三种,

    我在Qt开源社区里找到了,还没有发布的qsoap源码,,,这个可以经过编译,配置,直接在Qt程序中运用,而且很方便..

可以在这里找到它:http://qt./products/appdev/add-on-products/catalog/4/Utilities/qtsoap

    它里面提供了两种运用方式:

    分别是,源码引入和先编译生成.dll,再引入程序...

    相关类:

    QtSoapMessage
    QtSoapQName
    QtSoapType
    QtSoapArray
    QtSoapArrayIterator
    QtSoapStruct
    QtSoapStructIterator
    QtSoapSimpleType
    QtSoapHttpTransport

    

        

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多