Форум: "Сети";
Текущий архив: 2004.07.25;
Скачать: [xml.tar.bz2];
ВнизIndy v.8 Получение Header ответа сервера. Найти похожие ветки
← →
panov © (2004-05-28 11:54) [0]Не нашел возможности получить заголовок ответа от сервера.
Пример есть только с использованием TIdLogDebug.
Или я не понимаю чего-то, или в tIdHTTP.Response есть только выжимки из заголовка?
Можно ли получить заголовок целиком без использования TIdLogDebug?
← →
Algol (2004-05-28 16:30) [1]idHTTP1.Response.RawHeaders.ConvertToStdValues(Memo1.Lines);
не оно ?
← →
panov © (2004-05-28 21:55) [2]>Algol (28.05.04 16:30) [1]
Что такое RawHeaders? Откуда?
← →
Verg © (2004-05-28 22:31) [3]А разве сам Response - это не то, что нужно?
← →
panov © (2004-05-28 23:06) [4]>Verg © (28.05.04 22:31) [3]
Увы, в Response только часть полей, да и надо мне не сами поля, а полный заголовок для подсчета его размера.
← →
Algol (2004-05-29 19:24) [5]
> Что такое RawHeaders? Откуда?
Да, только что посмотрел, в 8-й версии этого свойства нет, а в 9-й есть :)
← →
nikkie © (2004-05-30 00:14) [6]>panov
нет, в Response все-таки есть весь хедер. просто он не в виде одного stringlist. часть полей хедера разобрана в поля Response, а остальные поля доступны в виде Stringlist-а ExtraHeaders, см. методы TIdHTTP.RetrieveHeaders и TIdHeaderInfo.GetHeaders.
...для подсчета его размера.
имхо сделать это можно легко, если унаследоваться от TIdHTTP и переопределить метод Readln.
← →
panov © (2004-05-30 12:33) [7]Спасибо всем.
Сейчас пока в TIdLogDebug вытаскиваю заголовок.
>nikkie © (30.05.04 00:14) [6]
Попробую на работе с RetrieveHeaders и GetHeaders.
А вот с наследованием - не вижу особого смысла ради получения заголовка переопределять класс - несовместимость моет ьбыть в разных версиях Indy...
← →
nikkie © (2004-05-30 18:18) [8]>Попробую на работе с RetrieveHeaders и GetHeaders.
не знаю, что ты с ними собираешься сделать. я предлагал просто сорсы почитать. что-либо сделать, я думаю, не получится - это невиртуальные protected методы. ни вызвать их, ни вклиниться в них нельзя.
>TIdLogDebug
он выдает ведь еще всякую доп.информацию типа "Sent/Received" и дата/время? так что подсчитать количество байт в заголовке таким способом затруднительно, имхо.
>А вот с наследованием - не вижу особого смысла ради получения заголовка переопределять класс
что мне нравится в Indy - при наличии исходников, нужные методы они не стесняются делать виртуальными, и сделать своего наследника с исправленной функциональностью проблем не представляет. по-крайней мере пока мне это всегда удавалось.
нет, если не хочется делать наследника - можешь собрать исходный заголовок из ExtraHeaders и остальных полей (обратно тому, как это делается в TIdHeaderInfo.GetHeaders) и посчитать длину. мне кажется переопределить Readln проще и элегантнее.
несовместимость моет ьбыть в разных версиях Indy...
а вот это уже весело. ты попробуй ради интереса перенести свой код с использованием TIdLogDebug на Indy9 - и после этого делай выводы на тему несовместимостей с другими версиями. вот чем разработчики Indy никогда не озабачивались, это backward-совместимостью. и, наверное, это самый главный недостаток Indy. так что вариант с наследованием будет заведомо переносимее варианта с TIdLogDebug.
← →
panov © (2004-05-31 09:59) [9]>nikkie © (30.05.04 18:18) [8]
Спасибо за развернутый комментарий.
Думаю, что придется все-таки наследоваться.
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2004.07.25;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.037 c