Название: Проблема с получением параметров заголовка ответов QHttpResponseHeader Отправлено: Straylon от Декабря 02, 2009, 17:38 Здравствуйте! Есть следующая проблемка:
Создаю подключение http (http = new QHttp(this);). Передаю запрос: QHttpRequestHeader header ("GET", "/enc/nauka_i_tehnika/fizika/ABSOLYUTNI_NUL.html"); header.setValue("Host", "www.krugosvet.ru"); http->setHost("www.krugosvet.ru"); http->request(header); По сигналу connect(http, SIGNAL(responseHeaderReceived(const QHttpResponseHeader &)), this, SLOT(readResponseHeader(const QHttpResponseHeader &))); пытаюсь получить параметры ответа в методе readResponseHeader (размер файла ABSOLYUTNI_NUL.html): int fileSize = header.value("content-length").toInt(); но fileSize всегда равно нулю. В чем проблема? Как же получить размер этого файла? Название: Re: Проблема с получением параметров заголовка ответов QHttpResponseHeader Отправлено: DOOMer от Декабря 03, 2009, 10:33 Сервер не отдаёт HTTP-заголовок Content-Length, амне удалось получить только такие заголовки:
HTTP/1.1 200 OK Server: nginx/0.6.14 Date: Thu, 03 Dec 2009 07:26:28 GMT Content-Type: text/html; charset=windows-1251 Transfer-Encoding: chunked Connection: keep-alive X-Powered-By: PHP/5.2.10 Set-Cookie: PHPSESSID=31c616400c84273bfd41b5bb92a63102; path=/ Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: no-cache Название: Re: Проблема с получением параметров заголовка ответов QHttpResponseHeader Отправлено: Straylon от Декабря 03, 2009, 11:07 Хм, точно. А как же тогда получить размер удаленного файла в таком случае?
Название: Re: Проблема с получением параметров заголовка ответов QHttpResponseHeader Отправлено: DOOMer от Декабря 03, 2009, 12:13 Обязательно узнать размер файла, не загружая его при этом с сервера?
Если нет, то просто считывай его в строковой тип через слот, вызываемый по сигналу readyRead() используемого тобой QHttp-объекта. А потом уже просто узнавай размер через метод .length() объекта, в который сохранил данные. Название: Re: Проблема с получением параметров заголовка ответов QHttpResponseHeader Отправлено: Straylon от Декабря 03, 2009, 12:18 В том-то и проблема, что надо не загружая сам файл, узнать его размер. Это необходимо для функции обновления. В примере, конечно, страничка маленькая, а если документ 50 Мб, то смысл его закачивать и обновлять инфу о нем, если он такой же остался, как был. Вот сижу думаю, как выйти из ситуации ???
Название: Re: Проблема с получением параметров заголовка ответов QHttpResponseHeader Отправлено: Straylon от Декабря 03, 2009, 12:20 Получить дату последнего измения от сервера я так понимаю тоже не всегда есть возможность...
Название: Re: Проблема с получением параметров заголовка ответов QHttpResponseHeader Отправлено: Straylon от Декабря 03, 2009, 12:31 DooMer, а как бы ты решил задачу обновления информации об удаленном документе в случае его изменения? Как видишь размер и дата последнего изменения без загрузки не прокатывают?
Название: Re: Проблема с получением параметров заголовка ответов QHttpResponseHeader Отправлено: DOOMer от Декабря 03, 2009, 13:05 Straylon , я бы "пнул" разработчиков ресурса, с которого надо получать инфу, чтобы у них правильно генерировались HTTP-заголовки. Ведь Content-Lenght и Last-Modifed для этого и предназначены.
Больше никак я думаю. Название: Re: Проблема с получением параметров заголовка ответов QHttpResponseHeader Отправлено: Straylon от Декабря 03, 2009, 13:08 Да понимаешь пихнуть надо разработчиков порядка 300 ресурсов ;D, хотя надо проверить, может тока с этим ресурсом проблема
|