@ -22,6 +22,16 @@ namespace NzbDrone.Common.Http
public class HttpProvider : IHttpProvider
public class HttpProvider : IHttpProvider
{
{
private class GZipWebClient : WebClient
{
protected override WebRequest GetWebRequest ( Uri address )
{
HttpWebRequest request = ( HttpWebRequest ) base . GetWebRequest ( address ) ;
request . AutomaticDecompression = DecompressionMethods . GZip | DecompressionMethods . Deflate ;
return request ;
}
}
private readonly Logger _logger ;
private readonly Logger _logger ;
public const string CONTENT_LENGTH_HEADER = "Content-Length" ;
public const string CONTENT_LENGTH_HEADER = "Content-Length" ;
@ -49,7 +59,7 @@ namespace NzbDrone.Common.Http
{
{
try
try
{
{
var client = new WebClient { Credentials = identity } ;
var client = new GZip WebClient { Credentials = identity } ;
client . Headers . Add ( HttpRequestHeader . UserAgent , _userAgent ) ;
client . Headers . Add ( HttpRequestHeader . UserAgent , _userAgent ) ;
return client . DownloadString ( url ) ;
return client . DownloadString ( url ) ;
}
}
@ -107,7 +117,7 @@ namespace NzbDrone.Common.Http
_logger . Debug ( "Downloading [{0}] to [{1}]" , url , fileName ) ;
_logger . Debug ( "Downloading [{0}] to [{1}]" , url , fileName ) ;
var stopWatch = Stopwatch . StartNew ( ) ;
var stopWatch = Stopwatch . StartNew ( ) ;
var webClient = new WebClient( ) ;
var webClient = new GZip WebClient( ) ;
webClient . Headers . Add ( HttpRequestHeader . UserAgent , _userAgent ) ;
webClient . Headers . Add ( HttpRequestHeader . UserAgent , _userAgent ) ;
webClient . DownloadFile ( url , fileName ) ;
webClient . DownloadFile ( url , fileName ) ;
stopWatch . Stop ( ) ;
stopWatch . Stop ( ) ;