powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / IdHTTP Post и GZip
15 сообщений из 15, страница 1 из 1
IdHTTP Post и GZip
    #39685435
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Отправляю post запрос
В логах вижу

IdLogFile...
Sent 09.08.2018 12:19:12: ID=33071521
Recv 09.08.2018 12:19:12: HTTP/1.1 200 OK<EOL>Date: Thu, 09 Aug 2018 09:22:24 GMT<EOL>Content-Type: text/html; charset=UTF-8<EOL>Connection: close<EOL>Vary: Accept-Encoding<EOL>Expires: Thu, 09 Aug 2018 09:22:24 GMT<EOL>Cache-Control: max-age=0<EOL>Cache-Control: no-cache, no-store, must-revalidate<EOL>Strict-Transport-Security: max-age=31536000;<EOL>Expect-CT: max-age=604800, report-uri=" https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"<EOL>Server: cloudflare<EOL>CF-RAY: 447928786c732ab5-WAW<EOL>Content-Encoding: gzip<EOL><EOL>‹ яя
Recv 09.08.2018 12:19:12:
Stat Disconnected.

я так понимаю, что-то приходит, но не распаковывается?


TIdCompressorZLib я подключил:
Код: pascal
1.
IdHTTP2.Compressor := IdCompressorZLib1;


но всё равно декомпрессия gzip не происходит.

В итоге
Код: pascal
1.
res := IdHTTP1.Post(url, PostParams);


возвращается пустая строка.

Я что-то ещё забыл?
...
Рейтинг: 0 / 0
IdHTTP Post и GZip
    #39685453
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZLib - это разве gzip? а не zip разве?
Вот смотри что над кодом написано: http://docwiki.embarcadero.com/CodeExamples/Tokyo/en/ZLibCompressDecompress_(Delphi)

~~~~~~~~~~~

попробуй руками делать как тут:

http://delphi.org/2016/01/decompressing-the-trestresponse/

https://stackoverflow.com/a/19195232/976391
...
Рейтинг: 0 / 0
IdHTTP Post и GZip
    #39685466
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Когда я выполняю GET, то расшифровка (декомпрессия) выполняется
...
Рейтинг: 0 / 0
IdHTTP Post и GZip
    #39685473
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cloudflare -- это сервис для защиты от ддоса, любителей парсинга и других гадостей. И если он заносит в черный список, то будет отключать сразу, даже не отправив что-либо на реальный сервер. В этом случае слать данные надо вместе с куками (читай, перед отправкой зайти в той же сессии на сервер, чтобы он выставил куки, и после уже отправлять пост-данные). Я бы в эту сторону сначала смотрел.
...
Рейтинг: 0 / 0
IdHTTP Post и GZip
    #39685479
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я шлю с куками и кодом защиты csrf
...
Рейтинг: 0 / 0
IdHTTP Post и GZip
    #39685481
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JaDiCloudflare -- это сервис для защиты от ддоса, любителей парсинга и других гадостей.

Если бы забанили IP, я бы и через браузер не смог достучаться. Но сайт доступен.
...
Рейтинг: 0 / 0
IdHTTP Post и GZip
    #39685485
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наверное дело в другом.
Выполняю:
Код: pascal
1.
IdHTTP1.Post(url, PostParams, responseIn);


Но размер стрима responseIn (TMemoryStream) нулевой.
...
Рейтинг: 0 / 0
IdHTTP Post и GZip
    #39685532
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ariochпопробуй руками делать как тут:

http://delphi.org/2016/01/decompressing-the-trestresponse/

https://stackoverflow.com/a/19195232/976391

Почитал. Пробую.
После post запроса, размер responseIn = 25 байт, т.е. что там есть.

Выполняю:
Код: pascal
1.
2.
responseIn.Position := 0;
IdCompressorZLib1.DecompressGZipStream(responseIn, responseOut);


Исключений и ошибок нет, но стрим responseOut имеет нулевой размер в итоге.
...
Рейтинг: 0 / 0
IdHTTP Post и GZip
    #39685564
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Взял программу PostMan, вставил туда все заголовки, куки и параметр.
Получил правильный ответ. Читабельный. И размер 11 байт.
...
Рейтинг: 0 / 0
IdHTTP Post и GZip
    #39685566
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AriochZLib - это разве gzip? а не zip разве?
TZCompression/Decompression это чистый deflate. В gzip и zip используется этот же метод сжатия, но ещё и дополнительные заголовки.
...
Рейтинг: 0 / 0
IdHTTP Post и GZip
    #39685577
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А так и должно быть? 2 раза "sent"?

это лог одного post-запроса
...
Рейтинг: 0 / 0
IdHTTP Post и GZip
    #39685585
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вставил в Posnman данные из своей программы и Posnman вернул правильный ответ. Т.е. я отправляю серверу правильные данные.
Остаётся понять, что не так с ответом и как его "распаковать".
...
Рейтинг: 0 / 0
IdHTTP Post и GZip
    #39685587
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: pascal
1.
res := IdHTTP1.Post(url, PostParams);



это то, что приходит от idHTTP1. Post , если свойство IdHTTP1. Compressor оставить пустым

...
Рейтинг: 0 / 0
IdHTTP Post и GZip
    #39685618
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Создал новое тестовое простейшее приложение, подключить компрессор.
Всё работает
...
Рейтинг: 0 / 0
IdHTTP Post и GZip
    #39686017
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дело было не в бабине GZIP.
Название передаваемого (в POST) параметра "ID" - регистрозависимое, т.е. "id" правильно.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / IdHTTP Post и GZip
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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