Sar*_*han 9 c++ https qt request
我尝试使用https url 发送get请求.回复为空,但没有错误消息.我下载OpenSSL并将libeay32.dll和ssleay32.dll文件复制到C:\ Qt\Qt5.1.1\Tools\QtCreator\bin文件夹.
码:
QNetworkAccessManager *manager = new QNetworkAccessManager();
QNetworkRequest request;
QNetworkReply *reply = NULL;
QSslConfiguration config = QSslConfiguration::defaultConfiguration();
config.setProtocol(QSsl::TlsV1_2);
request.setSslConfiguration(config);
request.setUrl(QUrl(url));
request.setHeader(QNetworkRequest::ServerHeader, "application/json");
reply = manager->get(request);
qDebug() << reply->readAll();
Run Code Online (Sandbox Code Playgroud)
正如 Frank 在他的 commet 中所写,get 函数是异步的,因此在您尝试阅读答案时,http 请求甚至可能还没有完成。
要解决这个问题,您需要处理finished
信号:
connect(manager, SIGNAL(finished(QNetworkReply*)), this,
SLOT(replyFinished(QNetworkReply*)));
Run Code Online (Sandbox Code Playgroud)
并在处理程序中读取结果:
void NetworkHandler::replyFinished(QNetworkReply *reply)
{
qDebug() << reply->readAll();
}
Run Code Online (Sandbox Code Playgroud)