QNetworkReply не видно данных
От: Funny Rabbit Россия  
Дата: 28.12.25 07:58
Оценка:
Вот такой код.
    QNetworkAccessManager *manager = new QNetworkAccessManager(this);
    QNetworkRequest request;
    request.setUrl(QUrl(ui->teAddress->toPlainText()));
    //request.setRawHeader("User-Agent", "MyOwnBrowser 1.0");
    QNetworkReply *reply = manager->get(request);
    QByteArray bar = reply->readAll();
    ui->teResult->setText(QString(bar));

Не показывает ответ от сервера. В чем проблема?
То что меня не убивает, делает меня умнее.
Re: QNetworkReply не видно данных
От: Igore Россия  
Дата: 28.12.25 12:41
Оценка: 8 (2)
Здравствуйте, Funny Rabbit, Вы писали:

FR>Не показывает ответ от сервера. В чем проблема?

Ответа от сервера просто еще нету, код неверно написан, в документации

Posts a request to obtain the contents of the target request and returns a new QNetworkReply object opened for reading which emits the readyRead() signal whenever new data arrives.

А в описании еще два примера как нужно писать код дано
QNetworkAccessManager *manager = new QNetworkAccessManager(this);
connect(manager, &QNetworkAccessManager::finished,
        this, &MyClass::replyFinished);

manager->get(QNetworkRequest(QUrl("http://qt-project.org")));

или как у тебя
QNetworkRequest request;
request.setUrl(QUrl("http://qt-project.org"));
request.setRawHeader("User-Agent", "MyOwnBrowser 1.0");

QNetworkReply *reply = manager->get(request);
connect(reply, &QIODevice::readyRead, this, &MyClass::slotReadyRead);
connect(reply, &QNetworkReply::errorOccurred, this, &MyClass::slotError);
connect(reply, &QNetworkReply::sslErrors, this, &MyClass::slotSslErrors);

В твоем случае это приблизительно так
    QNetworkAccessManager *manager = new QNetworkAccessManager(this);
    QNetworkRequest request;
    request.setUrl(QUrl(ui->teAddress->toPlainText()));
    QNetworkReply *reply = manager->get(request);
    connect(reply, &QIODevice::readyRead, this, [reply](){
        ui->teResult->setText(ui->teResult->text() + QString(reply->readAll()));
    });
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.