0
我正在做一些API調用谷歌地圖,其中一些需要加密,所以我使用的是https。每當我使用HTTPS提出請求我得到的錯誤:讓openSSL與mac上的Qt一起工作
qt.network.ssl: QSslSocket: cannot resolve SSL_set_psk_client_callback
qt.network.ssl: QSslSocket: cannot resolve TLSv1_1_client_method
qt.network.ssl: QSslSocket: cannot resolve TLSv1_2_client_method
qt.network.ssl: QSslSocket: cannot resolve TLSv1_1_server_method
qt.network.ssl: QSslSocket: cannot resolve TLSv1_2_server_method
qt.network.ssl: QSslSocket: cannot resolve SSL_select_next_proto
qt.network.ssl: QSslSocket: cannot resolve SSL_CTX_set_next_proto_select_cb
qt.network.ssl: QSslSocket: cannot resolve SSL_get0_next_proto_negotiated
qt.network.ssl: QSslSocket: cannot call unresolved function SSL_get0_next_proto_negotiated
我得到這些錯誤也使用http的時候,但我仍然會收到我想要的數據,而以https我不知道。我看到,這顯然是因爲我沒有安裝openSSL,所以我檢查了我的版本0.9.8,所以我安裝了一個更新的版本(1.0.2)(注意我在Mac上),但仍然有相同的問題。我看到很多類似的問題,但是要麼沒有解決方案,要麼有一個不適合我,或者我不明白要做什麼。
我跑到下面的代碼:
qDebug() << "Support SSL: " << QSslSocket::supportsSsl()
<< "\nLib Version Number: " << QSslSocket::sslLibraryVersionNumber()
<< "\nLib Version String: " << QSslSocket::sslLibraryVersionString()
<< "\nLib Build Version Number: " << QSslSocket::sslLibraryBuildVersionNumber()
<< "\nLib Build Version String: " << QSslSocket::sslLibraryBuildVersionString();
和接收到的輸出:
qt.network.ssl: QSslSocket: cannot resolve SSL_set_psk_client_callback
qt.network.ssl: QSslSocket: cannot resolve TLSv1_1_client_method
qt.network.ssl: QSslSocket: cannot resolve TLSv1_2_client_method
qt.network.ssl: QSslSocket: cannot resolve TLSv1_1_server_method
qt.network.ssl: QSslSocket: cannot resolve TLSv1_2_server_method
qt.network.ssl: QSslSocket: cannot resolve SSL_select_next_proto
qt.network.ssl: QSslSocket: cannot resolve SSL_CTX_set_next_proto_select_cb
qt.network.ssl: QSslSocket: cannot resolve SSL_get0_next_proto_negotiated
Support SSL: true
Lib Version Number: 9470431
Lib Version String: "OpenSSL 0.9.8zg 14 July 2015"
Lib Build Version Number: 268439727
Lib Build Version String: "OpenSSL 1.0.1j 15 Oct 2014"
上市不涉及我最近安裝因此可能問題是它不使用一個版本新版本?
如果有人知道如何解決這個問題,那麼我可以使用https而不會出錯,請給出具體的說明,因爲我不是很有經驗。
謝謝
那些其他平臺是警告,而不是錯誤。由於Qt是使用更新的OpenSSL版本構建的,因此它會嘗試解決一些您沒有的額外功能。此外,最近的Qt版本甚至不使用OS X上的OpenSSL,而是使用SecureTransport。那是哪個Qt版本? – peppe
@peppe版本5.5 – user2471711