qt получить json объект с сайта на flask

126
09 мая 2019, 16:30

Пишу программу на Qt5.11 изучаю работу с сетью, у меня есть веб приложение на flask по этому адресу: вот на страницу возвращается то, что возвращает flask.jsonify (вот код):

def getFileText():
with open('redact.txt', 'r') as f:
    data = f.read()
    return data

@app.route('/')
def hello_world():
    return jsonify(
        curFileText = getFileText()
    )

если перейти по ссылке которую я дал, все работает, но теперь в qt мне нужно получить данные которые я отправляю (всего лишь одна строка), но вот проблема, каждый раз при запуске я вижу это: вот код ответственный за работу с сетью:

void MainWindow::openNet(){
QString url = "http";
QNetworkReply *data = this->netManager->get(QNetworkRequest(QUrl("http://avartur92.pythonanywhere.com")));
if( !data->error() ){
    QJsonDocument doc = QJsonDocument::fromJson(data->readAll());
    QJsonObject root = doc.object();
    if(doc.isObject()){
        qDebug() << "пришел объект";
    }
    if(doc.isArray()){
        qDebug() << "Пришел массив";
    }
    if(doc.isEmpty()){
        qDebug() << "я что-то делаю не так";
    }
    QWidget *w;
    w = new QWidget();
    w->setObjectName("buff");
    QTextEdit *txtEdit = new QTextEdit(w);
    txtEdit->setGeometry(ui->currTextEdit->x(), ui->currTextEdit->y(), ui->currTextEdit->width(), ui->currTextEdit->height() );
    txtEdit->setObjectName("currTextEdit");
    //QString filename = open();
    txtEdit->setText(root.value(root.keys().at(0)).toString());
    txtEdit->setAcceptDrops(false);
    ui->tabPanel->addTab(w, url);
    ui->tabPanel->setCurrentIndex(ui->tabPanel->count() - 1);
    ui->tabPanel->update();
    }
}

мой импровизированный "анализатор" говорит, что возвращается пустой json (в консоли и вывода пишется я что-то делаю не так ), и судя по отладчику программа падает на вот этой строке

txtEdit->setText(root.value(root.keys().at(0)).toString()); выходя за пределы некого QList'a у меня вопрос, что я делаю не так?

READ ALSO
std::promise в C++

std::promise в C++

Изучаю многопоточность в C++Никак не могу понять, что такое std::promise, для чего он нужен и почему так называется? Объясните, пожалуйста

176
Странно работает функция C++

Странно работает функция C++

В программе пишутся координаты и длина линиипочему-то не работает х6 y3 длина 3

167
C++. Keyboard Input. Отлов нажатия

C++. Keyboard Input. Отлов нажатия

Всем доброго времени сутокВозможно, дубликат, но пока действенной инфы(кроме либы SDL и std::cin) не увидел

146