![]() |
Модераторы: Snowy, Poseidon, MetalFan |
![]() ![]() ![]() |
|
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 4 Всего: 329 |
Некоторые сайты отдают контент в сжатом виде. Я не могу понять, как мне заставить компоненту THttpCli "разжать" контент или получать уже "разжатый" контент.
Это сообщение отредактировал(а) Akella - 10.9.2010, 22:21 |
|||
|
||||
Matematik |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1027 Регистрация: 11.3.2006 Репутация: 24 Всего: 50 |
В 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 |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 4 Всего: 329 |
кошмар... но в ICS должны быть родные способы работы со сжатым контентом
|
|||
|
||||
Matematik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1027 Регистрация: 11.3.2006 Репутация: 24 Всего: 50 |
Глянул одним глазом ics, нашел файлик OverbyteIcsHttpCCodZLib.pas, и судя по исх. коду его надо просто добавить в uses.
|
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 4 Всего: 329 |
Да, 2 файла (OverbyteIcsZlib.inc и OverbyteIcsHttpCCodZLib.pas) нужно закинуть в папку, где все dcu этой библиотеки хранятся и прописать OverbyteIcsHttpCCodZLib в USES.
Matematik, +1, спасибо ![]() Это сообщение отредактировал(а) Akella - 13.9.2010, 08:59 |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 4 Всего: 329 |
Ничего не пойму. Работал код, работал и вот те на. Резко всё вернулось на круги своя.
В USES OverbyteIcsHttpCCodZLib не убирал. Опять ICS(HttpCli) не распаковывает полученный контент ![]() ![]() ![]() |
|||
|
||||
RA |
|
|||
![]() Брутальный буратина ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3497 Регистрация: 31.3.2002 Где: Лес Репутация: 10 Всего: 115 |
Если в HttpCli собираешься использовать Gzip то не забудь включить тумблер
|
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 4 Всего: 329 |
RA, а если его включить и оставить включенным постоянно для всех (разных) сайтов? Можно так?
|
|||
|
||||
RA |
|
|||
![]() Брутальный буратина ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3497 Регистрация: 31.3.2002 Где: Лес Репутация: 10 Всего: 115 |
Эт не знаю не проверял. Добавлено @ 16:11 ps: Некоторые провайдеры сами разжимают входящий к клиенту гзип трафик, а некоторые нет, так что тут может оказать очень серьёзная подстава ... поэтому на всякий случай сделаю тут маленькую рекламку http://www.fiddler2.com Web debugging proxy Это сообщение отредактировал(а) RA - 16.11.2010, 16:11 |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 4 Всего: 329 |
||||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Сети" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Сети | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |