You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Lidarr/src/NzbDrone.Common/Http/HttpProvider.cs

63 lines
1.7 KiB

using System;
using System.Net;
using NLog;
using NzbDrone.Common.EnvironmentInfo;
namespace NzbDrone.Common.Http
{
[Obsolete("Use IHttpClient")]
public interface IHttpProvider
{
string DownloadString(string url);
string DownloadString(string url, string username, string password);
}
[Obsolete("Use HttpProvider")]
public class HttpProvider : IHttpProvider
{
private readonly Logger _logger;
private readonly string _userAgent;
public HttpProvider(Logger logger)
{
_logger = logger;
_userAgent = string.Format("Sonarr {0}", BuildInfo.Version);
ServicePointManager.Expect100Continue = false;
}
public string DownloadString(string url)
{
return DownloadString(url, null);
}
public string DownloadString(string url, string username, string password)
{
return DownloadString(url, new NetworkCredential(username, password));
}
private string DownloadString(string url, ICredentials identity)
{
try
{
var client = new GZipWebClient { Credentials = identity };
client.Headers.Add(HttpRequestHeader.UserAgent, _userAgent);
return client.DownloadString(url);
}
catch (WebException e)
{
_logger.Warn("Failed to get response from: {0} {1}", url, e.Message);
throw;
}
catch (Exception e)
{
_logger.Warn(e, "Failed to get response from: " + url);
throw;
}
}
}
}