我得嘗試發送使用QNetworkAccessManager從一個QObject派生類的請求有問題的HTTP請求。發送使用QNetworkAccessManager
首先,在我的構造函數中我做到以下幾點:
QObject::connect(&mAccessManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(requestFinished(QNetworkReply*)));
然後,當我想送我做了以下要求:
QNetworkRequest checkLogin(QUrl(address));
checkLogin.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");
mByteArray = QByteArray("POST \"client\" : oxres");
QNetworkReply* pReply = mAccessManager.post(checkLogin, mByteArray);
現在,在這一點上,我希望在附近等幾秒鐘,然後收到我班的插槽requestFinished的響應。但它不會被調用。
我在茫然,我做錯了什麼。任何人有任何想法? (我敢肯定它的東西很簡單)。
編輯:好吧,這是非常奇怪的。我有wireshark在後臺收集數據包,當我生成該帖子請求時,我看到wireshark中沒有任何事情發生。那爲什麼不發送?
編輯2:嗯,似乎問題在於我向https://地址發送請求......爲什麼會這樣?
你引用指出,QT不支持默認SSL的頁面,但它動態地加載DLL的OpenSSL默認情況下,這意味着OpenSSL的DLL有當您運行可執行文件可在您的系統。也可以編譯QT來導入OpenSSL符號(而不是在運行時動態加載它們),這意味着如果您鏈接到DLL版本的OpenSSL(當您構建QT DLL時),如果沒有OpenSSL DLL可用,您的可執行文件甚至不會運行。或者,如果您將QT DLL與靜態OpenSSL鏈接在一起,那麼您完全不需要OpenSSL DLL。 – 2011-06-02 20:12:48