Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Uncompressing gzip response from WebClient

Tags:

c#

.net

webclient

Is there a quick way to uncompress gzip response downloaded with WebClient.DownloadString() method? Do you have any suggestions on how to handle gzip responses with WebClient?

like image 274
adrin Avatar asked Dec 31 '10 00:12

adrin


1 Answers

The easiest way to do this is to use the built in automatic decompression with the HttpWebRequest class.

var request = (HttpWebRequest)HttpWebRequest.Create("http://stackoverflow.com"); request.Headers.Add(HttpRequestHeader.AcceptEncoding, "gzip,deflate"); request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate; 

To do this with a WebClient you have to make your own class derived from WebClient and override the GetWebRequest() method.

public class GZipWebClient : WebClient {     protected override WebRequest GetWebRequest(Uri address)     {         HttpWebRequest request = (HttpWebRequest)base.GetWebRequest(address);         request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;         return request;     } } 

Also see this SO thread: Does .NET's HttpWebResponse uncompress automatically GZiped and Deflated responses?

like image 180
BrokenGlass Avatar answered Sep 28 '22 06:09

BrokenGlass