Đối với phần mở rộng Emacs, tôi muốn truy xuất dữ liệu qua HTTP. Tôi không đặc biệt thích ý tưởng bắn phá những thứ như wget
, curl
hoặc w3m
để có thể làm điều đó, vì vậy tôi đang sử dụng hàm url-retrieve
.Giải mã nội dung phản hồi gzip-ed với url-truy xuất
Một trong các máy chủ HTTP tôi đang nói chuyện xảy ra để bỏ qua các tiêu đề Accept-Encoding
và luôn nhấn mạnh vào việc gửi dữ liệu của mình với Content-Encoding: gzip
.
Kết quả là, và thực tế là url-retrieve
không tự động giải mã nội dung phản hồi, bộ đệm url-retrieve
sẽ hiển thị cho tôi sẽ chứa dữ liệu gzip nhị phân.
Tôi đang tìm cách giải mã nội dung phản hồi, tốt nhất là chunk theo đoạn, khi dữ liệu đến. Có cách nào để hướng dẫn url-retrieve
làm điều này cho tôi không?
Giải mã đáp ứng cùng một lúc, khi nó hoàn toàn đến, cũng sẽ được chấp nhận, nhưng tôi muốn tránh tất cả các fubar liên quan đến việc tạo một tiến trình con không đồng bộ chạy gzip, các phần đường dẫn của phản hồi mà tôi nhận được và đọc các đoạn đã được giải mã trở lại - Tôi sẽ tìm một số chức năng thư viện ở đây.
Emacs rõ ràng đã tích hợp sẵn gzip, vì bạn có thể mở các tệp đã nén, chỉnh sửa chúng và lưu chúng một cách minh bạch. Câu hỏi đặt ra là ... cái móc này ở đâu, và câu trả lời không rõ ràng. – jrockway
Cảm ơn, John. Trong khi tôi đã nhận thức được việc có thể mở các tập tin nén, nó thực sự đã không xảy ra với tôi rằng điều này có thể liên quan, nhưng rõ ràng nó là. Từ việc mở một tệp .gz trên đĩa, nhìn vào '* Messages *', và tìm kiếm các thư mục elisp của tôi cho bất cứ thứ gì tôi nhận được, tôi đã tìm ra mã thực thi đó là 'jka-cmpr-hook.el' và/hoặc' jka- include.el'. Dường như vấn đề này dễ giải quyết với một khi các chức năng được cung cấp bởi những vấn đề đó. 'chế độ nén tự động 'có vẻ hứa hẹn nhất ngay bây giờ. – rafl
loại bỏ chủ đề, nhưng bạn có biết liệu url-retrieve có thể xử lý https không? – sigjuice