Có cách nào nhanh chóng giải nén phản hồi gzip được tải xuống bằng phương thức WebClient.DownloadString() không? Bạn có bất cứ gợi ý nào về cách xử lý các phản hồi gzip với WebClient không?Giải nén phản hồi gzip từ WebClient
37
A
Trả lời
72
Cách dễ nhất để thực hiện việc này là sử dụng được xây dựng trong automatic decompression với lớp HttpWebRequest
.
var request = (HttpWebRequest)HttpWebRequest.Create("http://stackoverflow.com");
request.Headers.Add(HttpRequestHeader.AcceptEncoding, "gzip,deflate");
request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;
Để làm điều này với một WebClient
bạn phải làm cho lớp học của riêng của bạn bắt nguồn từ WebClient
và ghi đè lên các phương pháp GetWebRequest()
.
public class GZipWebClient : WebClient
{
protected override WebRequest GetWebRequest(Uri address)
{
HttpWebRequest request = (HttpWebRequest)base.GetWebRequest(address);
request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;
return request;
}
}
Cũng thấy điều này SO chủ đề: Does .NET's HttpWebResponse uncompress automatically GZiped and Deflated responses?
Các vấn đề liên quan
- 1. Giải nén phản hồi http đã nén gzip
- 2. Giải nén phản hồi http được gzipped
- 3. Giải nén phản hồi http GZIP http (sử dụng api khách hàng áo, java)
- 4. Giải nén phản hồi HTTP GZIPed trong Java
- 5. Giải nén chuỗi GZip trong Java
- 6. Phản hồi GZip trên IIS Express
- 7. Giải nén tệp gzip từ CURL, trên php
- 8. Giải nén GZip trong Haskell
- 9. Giải nén GZIP C# OutOfMemory
- 10. NSURLConnection: Phản hồi SOAP được mã hóa gzip bị lỗi
- 11. Làm thế nào để giải mã dữ liệu nén gzip được trả về trong Phản hồi HTTP trong python?
- 12. GZIP chuỗi giải nén và chuyển đổi
- 13. Python giải nén gzip chunk-by-chunk
- 14. AppEngine gzip nén
- 15. tăng mảng giải nén gzip byte
- 16. Sử dụng GZIP, phản hồi JSON và JQuery
- 17. GZIP nội dung phản hồi trong PlayFramework 2.0
- 18. Giải mã nội dung phản hồi gzip-ed với url-truy xuất
- 19. Android HttpURLConnection: nén gzip
- 20. Nén/giải nén NSString trong mục tiêu-c (iphone) bằng GZIP hoặc giảm phát
- 21. Làm cách nào để chuyển đổi phản hồi Byte Array từ WebClient thành Xml?
- 22. Làm thế nào để giải nén chuỗi Gzip trong ruby?
- 23. giải nén và đọc tệp gzip trong scala
- 24. Làm thế nào để giải nén GZip trong luồng (C#)?
- 25. GZIP nén + htaccess deflate
- 26. Nén GZip trong WCF WebService
- 27. Có sự hợp nhất GZIP hợp nhất hai tệp GZIP mà không giải nén chúng không?
- 28. Làm cách nào để đọc phản hồi GZIP-ed từ API Stackoverflow trong PHP?
- 29. Cách giải nén tệp gzip và ghi tệp đó ra tệp không nén, trên iPhone
- 30. Nén dữ liệu đã nén gzip ở Erlang
là nó không cần thiết để xác định tiêu đề acceptencoding cho lớp WebClient có nguồn gốc? – user3791372