powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / InDy http и GZip
25 сообщений из 28, страница 1 из 2
InDy http и GZip
    #39785916
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для скачивания страниц в GZip-encoding подключаю TIdCompressorZLib.

Код: pascal
1.
2.
    fIdCompressorZLib := TIdCompressorZLib.Create(fIdHTTP);
    fIdHTTP.Compressor := fIdCompressorZLib;



Я думал, что InDy как-то умеет автоматически без моего участия скачивать и запакованные странички и незапакованные.
Дело в том, что сервер отдает html в виде GZip, а некоторые файлы типа *.js - без GZip.

Т.е. придётся как-то анализировать заголовок и уже после этого понимать: подключать IdCompressorZLib или нет.
Т.е. предварительно нужно скачивать только заголовок, а потом уже остальное?

А как это правильно реализовать, не знаю, потому что HTTP.Get скачивает сразу всё.
...
Рейтинг: 0 / 0
InDy http и GZip
    #39785965
Василий 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну и получай гет-ом. А как получишь, смотри Content-encoding header и распаковывай при надобности. В чем проблема-то?
...
Рейтинг: 0 / 0
InDy http и GZip
    #39785968
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11Дело в том, что сервер отдает html в виде GZip

заголовки покажи, и запроса и ответа
...
Рейтинг: 0 / 0
InDy http и GZip
    #39785994
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
по идее, Инди сами должны распаковывать
...
Рейтинг: 0 / 0
InDy http и GZip
    #39786001
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arioch,

слева - загрузка js файла
...
Рейтинг: 0 / 0
InDy http и GZip
    #39786002
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
заголовки, заголовки....


кто сказал, что там вообще GZip-паковка, а не Zip например ?

или что там передаётся именно html-страничка
...
Рейтинг: 0 / 0
InDy http и GZip
    #39786003
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не открывается кратинка, и вообще, мы ж на программерском сайте, тeкстом скопируй
...
Рейтинг: 0 / 0
InDy http и GZip
    #39786004
Ghost Writer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11А как это правильно реализовать, не знаю, потому что HTTP.Get скачивает сразу всё.кроме GET и POST есть еще HEAD.
Но сначала лучше разобраться в заголовках при запросе html и .js
...
Рейтинг: 0 / 0
InDy http и GZip
    #39786006
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11Т.е. предварительно нужно скачивать только заголовок, а потом уже остальное?

тиритисски в HTTP протоколе для такого служит команда HEAD (вместо GET)
но вроде не все сервера ее поддерживают
...
Рейтинг: 0 / 0
InDy http и GZip
    #39786013
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кстати, ты Indy свежий скачал, или какой-то старый?

а то меня радуют такие например приколы, как
https://robertocschneiders.wordpress.com/2013/05/17/soap-and-rest-using-gzip-with-delphi-client/ IdHttp := TIdHTTP.Create(nil);
IdHttp.Compressor := TIdCompressorZLib.Create(IdHttp);

NOTE: This does not work in Delphi XE2. Access violation occurs. Works in XE3.
...
Рейтинг: 0 / 0
InDy http и GZip
    #39786014
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ariochне открывается кратинка, и вообще, мы ж на программерском сайте, тeкстом скопируй


проверил - открывается
...
Рейтинг: 0 / 0
InDy http и GZip
    #39786015
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
за head - спасибо, я не знали или забыл
...
Рейтинг: 0 / 0
InDy http и GZip
    #39786016
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ariochкстати, ты Indy свежий скачал, или какой-то старый?

встроенный в Tokyo
...
Рейтинг: 0 / 0
InDy http и GZip
    #39786019
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11,

Судя по accept-encoding Indy осознал, что ты ему компрессор подключил, это уже хорошо.

дальше смотри по исходникам indy

там, где он анализирует content-encoding он должен пойти в ветку, которая использует Compressor, и через него получить(?) распакованный ответ и куда-то(?) его положить, где ты его сможешь забрать

P.S. а много тебе таких файлов надо качать? м.б. тупо попросить windows, пусть сама скачает?
...
Рейтинг: 0 / 0
InDy http и GZip
    #39786020
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AriochСудя по accept-encoding Indy осознал, что ты ему компрессор подключил, это уже хорошо.

это же из Firefox снимок
...
Рейтинг: 0 / 0
InDy http и GZip
    #39786022
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11Ariochкстати, ты Indy свежий скачал, или какой-то старый?

встроенный в Tokyo

опять же, сравни со свежим, не меняли ли там чего в районе сжатия

P.S. мне много с HTTP работать не приходилось, я обычно пользовался или Synapse (она простая, чем и хороша) или вообще ActiveX
...
Рейтинг: 0 / 0
InDy http и GZip
    #39786023
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11AriochСудя по accept-encoding Indy осознал, что ты ему компрессор подключил, это уже хорошо.

это же из Firefox снимок

охренеть....

ну тогда делай такие же 2 снимка из Indy и сравнивай заголовки
...
Рейтинг: 0 / 0
InDy http и GZip
    #39786052
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А Web.HTTPApp умеет скачивать? я там такого метод не нашёл.
...
Рейтинг: 0 / 0
InDy http и GZip
    #39786111
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тут куча примеров, даже какой-то TDownloadURL

https://stackoverflow.com/questions/301546/whats-the-simplest-way-to-call-http-get-url-using-delphi

И я не про HTTPApp :-)
...
Рейтинг: 0 / 0
InDy http и GZip
    #39786112
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тут куча примеров, даже какой-то TDownloadURL

https://stackoverflow.com/questions/301546/whats-the-simplest-way-to-call-http-get-url-using-delphi

И я не про HTTPApp :-)
...
Рейтинг: 0 / 0
InDy http и GZip
    #39786244
Vizit0r
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
насколько я помню из давней работы с IdHTTP и TIdCompressorZLib - оно подключает декомпрессор, только если видит в Content-Type что-то типа gzip, как у тебя с html.
А в случае js, где content-type вообще отсутствует - декомпрессор вроде не должен задействоваться.

Но в любом случае, надо закопаться в обработчик ответа в IdHTTP, и смотреть что и как. Ничего такого особо хитрого там нет.
...
Рейтинг: 0 / 0
InDy http и GZip
    #39786245
Vizit0r
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
т.е. не content-type, а encoding, конечно же.
...
Рейтинг: 0 / 0
InDy http и GZip
    #39786421
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vizit0rА в случае js, где content-type вообще отсутствует - декомпрессор вроде не должен задействоваться.

Вот и я о том. Не должен. Но в нормальном виде скачивается только если отключить декомпрессор иначе - кракозабры.
...
Рейтинг: 0 / 0
InDy http и GZip
    #39786499
Cobalt747
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11,

Вот ты вроде нормальный программист, расскажи - как ты забываешь о такой возможности, как отладка по исходникам?!
...
Рейтинг: 0 / 0
InDy http и GZip
    #39787569
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cobalt747, не забываю, просто там СТОООЛЬКО "внутренностей", терпения, наверное не хватает
...
Рейтинг: 0 / 0
25 сообщений из 28, страница 1 из 2
Форумы / Delphi [игнор отключен] [закрыт для гостей] / InDy http и GZip
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]