Мой ответ на запрос API иногда "неопределенная строка" - PullRequest
0 голосов
/ 10 апреля 2019

Когда я вызываю запрос API с QNetworkRequest и сохраняю его в строку, включенный файл 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

Но иногда все идет хорошо!?

Большое спасибо за вашу помощь !!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...