Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Delphi: Сети > ICS + gzip (zlib) |
Автор: Akella 10.9.2010, 15:30 |
Некоторые сайты отдают контент в сжатом виде. Я не могу понять, как мне заставить компоненту THttpCli "разжать" контент или получать уже "разжатый" контент. |
Автор: Matematik 10.9.2010, 18:35 | ||||
В synaptic просто получал в AnsiString пожатую страницу, проверял заголовок "Content-Encoding: gzip", сигнатуру #$1F#$8B#$08#$00 и распаковывал ф-ей GZDecompressStr() из библиотеки http://www.base2ti.com/?id=delphi.zlib
В случае ошибки GZDecompressStr() вызывает исключение, бывает сервера шлют битый gzip, тогда делал еще один запрос без заголовка "Accept-Encoding: gzip", соответственно получал несжатую страницу. PS в библиотеке есть ошибка - если размер упакованных данных ==ноль - получаю AV, т.к. нет проверки переменной size написал автору письмо, но пока без изменений вот этот кусочек
|
Автор: Akella 10.9.2010, 22:18 |
кошмар... но в ICS должны быть родные способы работы со сжатым контентом |
Автор: Matematik 11.9.2010, 09:30 |
Глянул одним глазом ics, нашел файлик OverbyteIcsHttpCCodZLib.pas, и судя по исх. коду его надо просто добавить в uses. |
Автор: Akella 13.9.2010, 08:58 |
Да, 2 файла (OverbyteIcsZlib.inc и OverbyteIcsHttpCCodZLib.pas) нужно закинуть в папку, где все dcu этой библиотеки хранятся и прописать OverbyteIcsHttpCCodZLib в USES. Matematik, +1, спасибо ![]() |
Автор: Akella 13.9.2010, 16:55 |
Ничего не пойму. Работал код, работал и вот те на. Резко всё вернулось на круги своя. В USES OverbyteIcsHttpCCodZLib не убирал. Опять ICS(HttpCli) не распаковывает полученный контент ![]() ![]() ![]() |
Автор: Akella 11.10.2010, 10:32 |
RA, а если его включить и оставить включенным постоянно для всех (разных) сайтов? Можно так? |
Автор: RA 16.11.2010, 16:02 | ||
Эт не знаю не проверял. Добавлено @ 16:11 ps: Некоторые провайдеры сами разжимают входящий к клиенту гзип трафик, а некоторые нет, так что тут может оказать очень серьёзная подстава ... поэтому на всякий случай сделаю тут маленькую рекламку http://www.fiddler2.com Web debugging proxy |
Автор: Akella 16.11.2010, 16:15 |
Ты уж тогда опиши, что это и с чего его едят. |