C++ 如何使用QNetworkRequest检索HTTPS json数据
我有一些代码成功地从HTTP源检索json内容:C++ 如何使用QNetworkRequest检索HTTPS json数据,c++,visual-studio-2012,https,windows-7,qt5.5,C++,Visual Studio 2012,Https,Windows 7,Qt5.5,我有一些代码成功地从HTTP源检索json内容: void MainWindow::Test() { QNetworkRequest request; QString filename = "http://ip.jsontest.com"; //QString filename = "https://api.github.com/users/mralexgray/repos"; request.setHeader(QNetworkRequest::Content
void MainWindow::Test()
{
QNetworkRequest request;
QString filename = "http://ip.jsontest.com";
//QString filename = "https://api.github.com/users/mralexgray/repos";
request.setHeader(QNetworkRequest::ContentTypeHeader, "application/json");
request.setSslConfiguration(QSslConfiguration::defaultConfiguration());
request.setUrl(QUrl(filename));
QJsonObject json;
QNetworkAccessManager nam;
QNetworkReply *reply = nam.post(request, QJsonDocument(json).toJson());
while(!reply->isFinished())
{
qApp->processEvents();
}
if (reply->error() == QNetworkReply::NoError)
{
QByteArray response_data = reply->readAll();
QJsonDocument document = QJsonDocument::fromJson(response_data);
QJsonObject object = document.object();
qDebug() << "Json File Loaded : " << filename;
qDebug() << "IP: " << object["ip"].toString();
}
else // something went wrong
{
qDebug() << "Json File Failed to Load : " << filename;
qDebug() << "Error : " << reply->errorString();
}
reply->deleteLater();
}
我尝试了使用和不使用setSslConfiguration
调用
但这一切都没有帮助
我使用QT方法测试了SSL:
if (QSslSocket::supportsSsl())
{
qDebug() << "Supports SSL";
}
else
{
qDebug() << "Does NOT Support SSL";
}
if(qsslssocket::supportsSsl())
{
qDebug()我建议您将QNetworkAccessManager::sslErrors信号连接到任何插槽并打印错误。因此,我们可以确保错误在ssli中。我建议您将QNetworkAccessManager::sslErrors信号连接到任何插槽并打印错误。因此,我们可以确保错误在ssl中
if (QSslSocket::supportsSsl())
{
qDebug() << "Supports SSL";
}
else
{
qDebug() << "Does NOT Support SSL";
}