нужно получить данные по 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), а остальные - нет. Вопрос: как вывести их все? (Идеальным было бы решение - разделить весь документа по строкам сразу)
RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.