Qt QSslSocket:无法调用未解析的函数SSLv23_client_方法
我正在尝试调用http和https并尝试解析响应。我得到了http调用的响应,但是对于https调用,我得到了这个错误Qt QSslSocket:无法调用未解析的函数SSLv23_client_方法,qt,qnetworkaccessmanager,qnetworkreply,qnetworkrequest,qsslsocket,Qt,Qnetworkaccessmanager,Qnetworkreply,Qnetworkrequest,Qsslsocket,我正在尝试调用http和https并尝试解析响应。我得到了http调用的响应,但是对于https调用,我得到了这个错误 QSslSocket: cannot call unresolved function SSLv23_client_method QSslSocket: cannot call unresolved function SSL_CTX_new QSslSocket: cannot call unresolved function SSL_library_init QSslSock
QSslSocket: cannot call unresolved function SSLv23_client_method
QSslSocket: cannot call unresolved function SSL_CTX_new
QSslSocket: cannot call unresolved function SSL_library_init
QSslSocket: cannot call unresolved function ERR_get_error
void MyClass::on_push_button_clicked()
{
QString address = "New York";
QNetworkAccessManager *qnam__get_address=NULL;
QNetworkRequest request;
QString myurl;
//myurl = "http://google.com/complete/search?output=toolbar&q="+address;
myurl = "https://maps.googleapis.com/maps/api/geocode/xml?address=New York&key=google api key";
QUrl url(myurl);
request.setUrl(url);
qDebug() << url;
qnam__get_address = new QNetworkAccessManager(this);
if(qnam__get_address) {
QObject::connect(qnam__get_address, SIGNAL(sslErrors(QNetworkReply*,QList<QSslError>)), this, SLOT(onSslError(QNetworkReply*, QList<QSslError>)));
QObject::connect(qnam__get_address, SIGNAL(finished(QNetworkReply*)),this, SLOT(on_push_button_clicked_response(QNetworkReply*)));
reply = qnam__get_address->get(request);
}
return;
}
void MyClass::onSslError(QNetworkReply* r, QList<QSslError> errors)
{
r->ignoreSslErrors();
}
void MyClass::on_push_button_clicked_response(QNetworkReply* reply)
{
// no error received?
if (reply->error() == QNetworkReply::NoError)
{
qDebug()<<"MyClass:: got the response";
}
// Some http error received
else
{
qDebug() << ".......error";
}
if(reply)
{
reply->deleteLater();
}
return;
}
QSslSocket:无法调用未解析函数SSLv23\u client\u方法
QSslSocket:无法调用未解析的函数SSL\u CTX\u new
QSslSocket:无法调用未解析的函数SSL\u library\u init
QSslSocket:无法调用未解析的函数ERR\u get\u error
void MyClass::在按下按钮时单击()
{
QString address=“纽约”;
QNetworkAccessManager*qnam\uuu get\u address=NULL;
QNetworkRequest请求;
qstringmyurl;
//myurl=”http://google.com/complete/search?output=toolbar&q=“+地址;
myurl=”https://maps.googleapis.com/maps/api/geocode/xml?address=New 约克&key=谷歌api密钥”;
QUrl url(myurl);
setUrl(url);
qDebug()获取(请求);
}
返回;
}
void MyClass::onssError(QNetworkReply*r,QList错误)
{
r->ignoreSslErrors();
}
void MyClass::在按下按钮时单击响应(QNetworkReply*reply)
{
//没有收到错误?
如果(回复->错误()==QNetworkReply::NoError)
{
愚蠢的高度。。。。。。。。。。。。。。
我安装了OpenSSL,它解决了这个问题。所以现在如果我尝试运行/调试它,我不会得到任何错误
我找到了这些URL不起作用的原因。
//myurl=”“+地址;
myurl=“York&key=googleapi-key”;
添加端口后,我得到了回复。我遇到了完全相同的问题。但是,我是devOPs工程师,所以我必须让它在用户机器上工作,而不仅仅是在开发人员环境中。您可以在修复程序上发布的任何其他信息都将为我节省一些时间,我将不胜感激。同时,我将调查所提供的内容并报告我的f绑定。谢谢sk110。我知道有点晚了。尝试在.exe文件所在的同一目录中添加以下dll,应该可以解决问题。1.ssleay32.dll 2.ssleay32MD.dll 3.ssleay32.dll 4.ssleay32MD.dll我修复它的方法是在另一台没有问题的Windows计算机上运行依赖项walker。依赖项walker found另一个由Intel构建的Sley dll。我用安装程序中工作机器上的这些dll替换了我的Sley dll,问题就解决了。我希望这有点道理。:d