C++ QT-Get请求解析JSON

C++ QT-Get请求解析JSON,c++,qt,C++,Qt,我正在尝试发出一个GET请求,以便对用户进行身份验证。下面是我的代码: void MainWindow::on_loginButton_clicked() { QString email = "test"; QString password = "test"; nam = new QNetworkAccessManager(this); QObject::connect(nam, SIGNAL(finished(QNetworkReply*)),

我正在尝试发出一个
GET请求
,以便对用户进行身份验证。下面是我的代码:

void MainWindow::on_loginButton_clicked()
{
    QString email = "test";
    QString password = "test";

    nam = new QNetworkAccessManager(this);
    QObject::connect(nam, SIGNAL(finished(QNetworkReply*)),
             this, SLOT(serviceRequestFinished(QNetworkReply*)));

    QUrl url("http://url.com/api.php?action=authenticate_user&email=" + email + "&password" + password);
    QNetworkReply* reply = nam->get(QNetworkRequest(url));
}

void MainWindow::serviceRequestFinished(QNetworkReply* reply)
{
    if(reply->error() == QNetworkReply::NoError) {

        QStringList propertyNames;
        QStringList propertyKeys;

        QString strReply = (QString)reply->readAll();

        qDebug() << strReply;

        QJsonDocument jsonResponse = QJsonDocument::fromJson(strReply.toUtf8());

        QJsonObject jsonObject = jsonResponse.object();

        QJsonArray jsonArray = jsonObject["status"].toArray();

        qDebug() << jsonObject["status"].toString();

        foreach (const QJsonValue & value, jsonArray)
        {
            QJsonObject obj = value.toObject();
            qDebug() << value.toString();
        }

    } else {
        qDebug() << "ERROR";
    }

    delete reply;
}

服务器会告诉您,您的请求缺少参数。仔细查看请求并仔细检查

QUrl url("http://url.com/api.php?action=authenticate_user&email=" + email + "&password" + password);

在我看来,URL是错误的,它不应该说
“&password=“+…
那里吗?

如果我在浏览器中复制完全相同的
URL
,它会返回一个JSON,所以我认为完全相同的URL不会有问题吗?所以一个包含…&电子邮件的url=foo@example.com&passwordMySecrectPassword在浏览器中工作?这个问题似乎离题了,因为它是关于一个简单的打字错误。更正打字错误可以解决这个问题。这个问题和答案对其他人都没有用处。如果有任何问题,尝试的解决方案存在安全相关问题,不应作为参考材料。
QUrl url("http://url.com/api.php?action=authenticate_user&email=" + email + "&password" + password);