最近的專案裡用到了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文件中內容,顯示需...