Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何使用QNetworkRequest检索HTTPS json数据_C++_Visual Studio 2012_Https_Windows 7_Qt5.5 - Fatal编程技术网

C++ 如何使用QNetworkRequest检索HTTPS 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

我有一些代码成功地从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::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";
}