Qt — Как получить responseText с помощью QNetworkAccessmanager

Вот мой код:

Widget::Widget()
{
    manager = new QNetworkAccessManager(this);
    connect(manager, SIGNAL(finished(QNetworkReply*)),this, SLOT(replyFinished(QNetworkReply*)));

    manager->get(QNetworkRequest(QUrl("http://qt.nokia.com")));
}
void Widget::replyFinished(QNetworkReply* reply)
{
    //some other code here
}

Я надеюсь, что reply будет иметь какой-то метод вроде getrespnsetext(), но это не...
Может ли кто-нибудь показать мне пример, все, что мне нужно, это распечатать текст ответа (есть ли как в Javascript Ajax)
Спасибо за помощь!


person nvcnvn    schedule 02.11.2011    source источник
comment
Возможный дубликат: stackoverflow.com/q/7177433/894321   -  person alexisdm    schedule 03.11.2011


Ответы (2)


Вам нужно только использовать reply->readAll() внутри функции replyFinished(...), чтобы прочитать весь возвращаемый текст. Он возвращает QByteArray, поэтому вы можете делать все, что хотите.

person felixgaal    schedule 08.05.2012

Глядя на документацию для QNetworkReply здесь, в частности, на готовый сигнал, в нем упоминается, что вы можете использовать readAll() для получения QByteArray всех данных. Предполагая, что вы знаете, действительно ли такое преобразование, QString действительно имеет конструктор, который принимает QByteArray в качестве параметра, как описано в документации здесь.

person vikinglief    schedule 02.11.2011