直接用Qt寫soap

2021-09-25 00:15:01 字數 4164 閱讀 7772

最近的專案裡用到了webservice, 同事用的是`gsoap`來搞的.

用這個本身沒什麼問題, 但這貨生成的**實非人類可讀, 到處都是`__`和`_`, 看得我眼暈.....

其實專案裡用的webservice很簡單, 暫時只有身份驗證這乙個, 所以就想能不能直接用qt搞定.

說搞就搞, 哪知一下就搞了1天半.....

把過程記錄下來, 以防我的老腦筋忘記了 -_____-!

我們用的webservice是基於xml的, 也叫soap.

而soap = http + xml, 所以原理就很簡單了:

用qhttp直接連伺服器, 將請求的內容以指定xml格式組織好後, post到服務端就ok了

怎麼樣, 原理很簡單吧, 但對於我這個從來沒寫過http請求的人來說, 還是出了不少的狀況.

* 400 bad request

這個問題一般都是post寫錯了, 應該是大寫`post`才行.

* 500 interval server error

一開始一直都是400錯誤, 不停的改**的過程中, 也出了幾次500錯誤.

出現這個錯誤, 一般都是xml的格式有誤導致的, 如我看網上寫的會在xml的開頭新增乙個`\n`, 我也加了, 結果就是這種錯誤.

** 注意事項 **

webservice中, 至少有兩個header是必須填寫的:

1. content-type

2. content-length

因為內容是xml格式的文字, 所以這兩個必須寫, 否則伺服器無法正確解析.

**試驗的時候, 用的是pyqt4寫的, 所以這裡就貼點這個**吧:

這裡其實提供了兩種方式來實現soap請求的, 其中`test`是用qt的方案實現的, `test1`用的是最原始的方法實現的.

這裡的東西在原理部分都可以對照上, 只有一點要注意一下:

這兩句裡的位址**不能**帶`http://`哦!!

用Qt寫的上位機

電子專業,一心搞硬體顯得太枯燥無味,正好接觸qt了,順勢為自己的小專案寫乙個上位機玩兒玩兒,熟悉一下qt環境下的桌面程式設計 一開始寫介面感覺速度太慢,索性就去現成的框架了,qframer不錯,介面做的還很好看,就拿來用了。開始的登入介面,用到資料庫程式設計,本地mysql程式,寫這個的時候遇到不少...

直接通過framebuffer直接寫屏

幀緩衝 framebuffer 是 linux 為顯示裝置提供的乙個介面,把視訊記憶體抽象後的一種裝置,他允許上層應用程式在圖形模式下直接對顯示緩衝區進行讀寫操作。這種操作是抽象的,統一的。使用者不必 關心物理視訊記憶體的位置 換頁機制等等具體細節。這些都是由framebuffer 裝置驅動來完成的...

QT寫串列埠

qt寫串列埠 在qt中建立工程,在這裡就不敘述了.軟體思路 1.配置 2.完成接收 3.完成傳送 串列埠的功能也就是這些了.一.包含標頭檔案 需要包含的重要檔案,就是qserialport include 新增標頭檔案後會提示錯誤.這時可以點選幫助,f1,檢視qserialport文件中內容,顯示需...