我的API请求响应是somtimes“ unerminated string”

时间:2019-04-10 12:37:47

标签: c++ qt api

当我使用QNetworkRequest调用API请求并将其保存为字符串时,包含的JSON文件有时不完整。但是,字符串总是在其他地方断开。

首先,我在函数中声明了变量URL,然后在下面称为函数。

url = "https://world.openfoodfacts.org/api/v0/product/" + barcode + ".json";
        startRequest(url);

以下功能检索JSON文件并从中过滤产品名称。

void MainWindow::startRequest(QUrl url)
{
    reply = qnam.get(QNetworkRequest(url));
    connect(reply, SIGNAL(readyRead()),
            this, SLOT(httpReadyRead()));
}


void MainWindow::httpReadyRead()
{
    json = (QString)reply->readAll();
    //json.replace(QString("'"), QString(" "));
    qDebug() << json.toUtf8();

    QJsonParseError error;
    QJsonDocument jsonDocument = QJsonDocument::fromJson(json.toUtf8(), &error);
    if (error.error == QJsonParseError::NoError) {
        if (jsonDocument.isObject()) {
           QVariantMap result = jsonDocument.toVariant().toMap();
           qDebug() << "status_verbose:" << result["status_verbose"].toString();

           if(result["status_verbose"].toString() == "product found"){
               QVariantMap nestedMap = result["product"].toMap();
               ui->name->setText(nestedMap["product_name"].toString());
           }else{
               ui->name->setText("Produkt wurde in der Datenbank nicht gefunden!!");
           }

       }
    } else {
       qFatal(error.errorString().toUtf8().constData());
       //exit(1);
   }
}

这是错误代码:

unterminated string

但是有时候进展顺利!?

非常感谢您的帮助!

0 个答案:

没有答案