我要发出一个网络 API 请求:
QNetworkAccessManager networkManager
QUrlQuery urlQuery;
urlQuery.setQuery("https://lalala.com/login");
urlQuery.addQueryItem("submit", "");
urlQuery.addQueryItem("email", "email@email.com");
urlQuery.addQueryItem("pass", "unbelievable_password");
QNetworkRequest request;
request.setUrl(QUrl(urlQuery.query()));
QNetworkReply* reply = networkManager.get(request);
const QString jsonDataString = (QString) reply->readAll();
问题是我在执行这段代码的过程中有以下输出:
QSslSocket: cannot resolve TLSv1_1_client_method
QSslSocket: cannot resolve TLSv1_2_client_method
QSslSocket: cannot resolve TLSv1_1_server_method
QSslSocket: cannot resolve TLSv1_2_server_method
QSslSocket: cannot resolve SSL_select_next_proto
QSslSocket: cannot resolve SSL_CTX_set_next_proto_select_cb
QSslSocket: cannot resolve SSL_get0_next_proto_negotiated
QSslSocket: cannot call unresolved function SSL_get0_next_proto_negotiated
我的 .pro
文件包含库定义:LIBS += -lcrypto -lssl
,但是它的存在并没有改变任何东西。
调用 QSslSocket::supportsSsl()
返回 1
。
openssl version
的执行返回 OpenSSL 0.9.8za 2014 年 6 月 5 日
。
系统是Mac OS X Yosemite
,Qt版本是5.4.0
。
如何调用 https
?即使当我调用根本不需要任何 SSL 的 http://ip.jsontest.com
时,这些错误也存在。
最佳答案
很可能您必须安装新版本的 OpenSSL。
关于c++ - Qt5 SSL 支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27709255/