Для расширения Emacs я хотел бы получать данные по HTTP.Мне не особенно нравится идея обстреливать такие вещи, как wget
, curl
или w3m
, чтобы сделать это, поэтому я использую функцию url-retrieve
.
Один из HTTP-серверов, с которыми я общаюсь, игнорирует Accept-Encoding
заголовки и настаивает на том, чтобы всегда отправлять свои данные с Content-Encoding: gzip
.
В результате этого и того факта, что url-retrieve
не декодирует тела ответов автоматически, буфер url-retrieve
предоставит мне данные, содержащие двоичные данные gzip.
Я ищу способ декодировать тело ответа, предпочтительно порцию за порцией, как данныеприбывает.Есть ли способ поручить url-retrieve
сделать это для меня?
Декодирование ответа сразу, как только он полностью придет, также будет приемлемым, но я бы предпочел избегать всех фубаров, вовлеченных в созданиеасинхронный подпроцесс, выполняющий gzip, передающий части ответа, который я получил, и считывающий декодированные фрагменты обратно - я бы искал здесь некоторую библиотечную функцию.