QHttp и https

программирование Linux C++ qt

нужно получить данные по https запросив их GET'ом
пишу код:
void Agent::getInfo()
{
http = new QHttp;
socket = new QSslSocket(this);
connect(http, SIGNAL(done(bool)),this, SLOT(httpRequestDone(bool)));
http->setSocket(socket);
QHttpRequestHeader header("GET", "/query2.php?version=xxxxxx&ann=xxx");
header.setValue("Host", "https://example.com");
header.setValue("User-Agent", "Synapse");
http->setHost("example.com", QHttp::ConnectionModeHttps, 443);

http->request( header );

}

void Agent::httpRequestDone(bool error)
{
if(error)
{
QMessageBox::information(this, "error", http->error() + "\n" + http->errorString(), QMessageBox::Ok);
}
else
{
data = http->readAll();
ui->plainTextEdit->appendPlainText(trUtf8(data));
}

}

Но постоянно возвращает ошибку...

Примечание:
версия Qt - 4.6.2
ошибка выдается вот в этом сообщении:
if(error)
{
QMessageBox::information(this, "error", http->error() + "\n" + http->errorString(), QMessageBox::Ok);
}


ошибка: HTTP request failed

Примечание:
Может, QNetworkAccessManager ?
а то QNetworkManager такого даже в справке нет...

Примечание:
Спасибо за ответ.
Правда, у меня появился еще один вопросик.
Написал такой код:
void Agent::getInfo()
{
manager = new QNetworkAccessManager(this);
connect(manager, SIGNAL(finished(QNetworkReply*)),
this, SLOT(replyFinished(QNetworkReply*)));
ReplyGET = manager->get(QNetworkRequest(QUrl("https://example.com/query2.php?version=xxxxxx&ann=xxx")));
ReplyGET->ignoreSslErrors();

}

void Agent::replyFinished(QNetworkReply *)
{
ui->plainTextEdit->appendPlainText(ReplyGET->readAll().constData());
}

Собственно данные отдаваемые сервером представляют собой набор текстовых строк, разделенных между собой символом с кодом 0.
Так вот в plainTextEdit выводится только первая строка (до первого символа с кодом 0), а остальные - нет. Вопрос: как вывести их все? (Идеальным было бы решение - разделить весь документа по строкам сразу)
Ответы:
Какую ошибку то возвращает? Какая версия Qt?
Вообще, в 4.6 QHttp - deprecated, используйте вместо него QNetworkManager.
: Может, QNetworkAccessManager ?


14 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.