之前也許是因為根本不用的原因吧,,,根本沒有想過Qt訪問WebService的方式....
要解決這個問題,因為Qt現(xiàn)行版沒有提供直接訪問的類庫...首先是一些必備知識,
我連的服務(wù)器是用VS2010建的只有 string helloworld() 和string getHello(string str)兩個接口的iis服務(wù)器.
Qt對xml文檔操作和WebService原理,特點和通信方式....這個可以看http://user.qzone.qq.com/380411306/blog/1273588842?ptlang=2052&ADUIN=952147772&ADSESSION=1273588927&ADTAG=CLIENT.QQ.2785_FriendTip_QzoneFolder.0
針對這個我一共進(jìn)行了三種嘗試,,,
第一種,
先用Qt的QNetworkAccessManager類實現(xiàn)與WebService建立連接,,
然后用QNetworkReply類實現(xiàn)與WebService的通信,當(dāng)然這種通信只是異步流的通信,,,,你會收到WebService的整個XML網(wǎng)頁,,,
接著,就是自己根據(jù)SOAP協(xié)議規(guī)則解析XML,按,SOAP的協(xié)議規(guī)則和WebService通信
最后,把自己寫好的請求XML串行化,發(fā)給WebService,
現(xiàn)在為止,第一種嘗試并沒有成功,,因為做這個嘗試的時候,對SOAP還不是很不了解,,,不過可以肯定的是,這種辦法是可行的...
第二種,
用了第三方 C++的gsoap開源庫,這是一位網(wǎng)友提供的,,,他的博客:http://blog.csdn.net/tingsking18/archive/2010/04/07/5456831.aspx里有詳細(xì)的介紹....
第三種,
我在Qt開源社區(qū)里找到了,還沒有發(fā)布的qsoap源碼,,,這個可以經(jīng)過編譯,配置,直接在Qt程序中運(yùn)用,而且很方便..
可以在這里找到它:http://qt./products/appdev/add-on-products/catalog/4/Utilities/qtsoap
它里面提供了兩種運(yùn)用方式:
分別是,源碼引入和先編譯生成.dll,再引入程序...
相關(guān)類:
QtSoapMessage
QtSoapQName
QtSoapType
QtSoapArray
QtSoapArrayIterator
QtSoapStruct
QtSoapStructIterator
QtSoapSimpleType
QtSoapHttpTransport