Russian Qt Forum
Ноябрь 23, 2024, 13:27 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Проблема с получением параметров заголовка ответов QHttpResponseHeader  (Прочитано 5410 раз)
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 всегда равно нулю. В чем проблема? Как же получить размер этого файла?
Записан
DOOMer
Чайник
*
Offline Offline

Сообщений: 95



Просмотр профиля
« Ответ #1 : Декабрь 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
Записан

Linux x86_64 && Qt 5.4.0 && Qt 4.8.6t && GCC 4.9.2
Straylon
Гость
« Ответ #2 : Декабрь 03, 2009, 11:07 »

Хм, точно. А как же тогда получить размер удаленного файла в таком случае?
Записан
DOOMer
Чайник
*
Offline Offline

Сообщений: 95



Просмотр профиля
« Ответ #3 : Декабрь 03, 2009, 12:13 »

Обязательно узнать размер файла, не загружая его при этом с сервера?

 Если нет, то просто считывай его  в строковой тип через слот, вызываемый по сигналу readyRead()  используемого  тобой   QHttp-объекта. А потом уже просто узнавай размер через метод  .length() объекта, в который сохранил данные.
Записан

Linux x86_64 && Qt 5.4.0 && Qt 4.8.6t && GCC 4.9.2
Straylon
Гость
« Ответ #4 : Декабрь 03, 2009, 12:18 »

В том-то и проблема, что надо не загружая сам файл, узнать его размер. Это необходимо для функции обновления. В примере, конечно, страничка маленькая, а если документ 50 Мб, то смысл его закачивать и обновлять инфу о нем, если он такой же остался, как был. Вот сижу думаю, как выйти из ситуации  Непонимающий
Записан
Straylon
Гость
« Ответ #5 : Декабрь 03, 2009, 12:20 »

Получить дату последнего измения от сервера я так понимаю тоже не всегда есть возможность...
Записан
Straylon
Гость
« Ответ #6 : Декабрь 03, 2009, 12:31 »

DooMer, а как бы ты решил задачу обновления информации об удаленном документе в случае его изменения? Как видишь размер и дата последнего изменения без загрузки не прокатывают?
Записан
DOOMer
Чайник
*
Offline Offline

Сообщений: 95



Просмотр профиля
« Ответ #7 : Декабрь 03, 2009, 13:05 »

Straylon , я бы "пнул" разработчиков ресурса, с которого надо получать инфу, чтобы у них правильно генерировались  HTTP-заголовки. Ведь  Content-Lenght и  Last-Modifed для этого и предназначены.

Больше никак я думаю.
Записан

Linux x86_64 && Qt 5.4.0 && Qt 4.8.6t && GCC 4.9.2
Straylon
Гость
« Ответ #8 : Декабрь 03, 2009, 13:08 »

Да понимаешь пихнуть надо разработчиков порядка 300 ресурсов Смеющийся, хотя надо проверить, может тока с этим ресурсом проблема
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.059 секунд. Запросов: 23.