Russian Qt Forum

Qt => Работа с сетью => Тема начата: zodiac от Сентябрь 06, 2007, 13:34



Название: Получение страницы по http
Отправлено: zodiac от Сентябрь 06, 2007, 13:34
Добрый день! Хочу получить по http станичку, но ни как не могу. Вот код:
void CIForm::on_sendquery_clicked()
{
     QFile file;
     file.setFileName("page.txt");
     file.open(QIODevice::WriteOnly);
     http->setHost("stat.comintel.ru");
     http->get("/special/iclient2.php", &file);
     http->closeConnection();
     file.close();
}
Т.е. тут я хочу записать её в файл, но файл выходит пустым (а вообще мне надо из этой страницы всего 5 символов, так что потом как загнать в память её буду мучаться). На форуме все просомтрел по ээжтой теме - ответов нет.


Название: Re: Получение страницы по http
Отправлено: Вячеслав от Сентябрь 06, 2007, 13:42
Цитировать
The function does not block and returns immediately. The request is scheduled, and its execution is performed asynchronously. The function returns a unique identifier which is passed by requestStarted() and requestFinished().
А ты сразу убиваешь и файл и запрос ....


Название: Re: Получение страницы по http
Отправлено: zodiac от Сентябрь 06, 2007, 13:46
А.. ясно.. А можно как-нибудь это в память загрузить (без файла) для дальнейшего парсинга текста?


Название: Re: Получение страницы по http
Отправлено: alex12 от Сентябрь 06, 2007, 14:18
Может примерно так:

Код:
void CIForm::on_sendquery_clicked()
{
     QBuffer buffer;
     ...
     http->get("/special/iclient2.php", &buffer);
     ....
     QString str = QString( buffer.buffer() );
}


Название: Re: Получение страницы по http
Отправлено: zodiac от Сентябрь 07, 2007, 12:21
Спасибо. А как этот буфер очищать?


Название: Re: Получение страницы по http
Отправлено: zodiac от Сентябрь 07, 2007, 12:48
Разобрался:
Код:
buffer.close();