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