Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.07.25;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.029 c
1-1089634124
REA
2004-07-12 16:08
2004.07.25
ComboBoxEx bug


8-1083431693
Sur
2004-05-01 21:14
2004.07.25
TImage + GIF


1-1089394943
BBoost
2004-07-09 21:42
2004.07.25
Text


11-1077914226
ALeX.B.
2004-02-27 23:37
2004.07.25
Вопрос по KolFtpSrv из ICS.


10-1024577619
Krok
2002-06-20 16:53
2004.07.25
Можно ли программно настроить DCOM?