@ -1,4 +1,5 @@
using System ;
using System.Collections.Generic ;
using System.Diagnostics ;
using System.IO ;
using System.Net ;
@ -12,6 +13,8 @@ namespace NzbDrone.Common
string DownloadString ( string address ) ;
string DownloadString ( string address , string username , string password ) ;
string DownloadString ( string address , ICredentials identity ) ;
Dictionary < string , string > DownloadHeader ( string url ) ;
Stream DownloadStream ( string url , NetworkCredential credential = null ) ;
void DownloadFile ( string url , string fileName ) ;
string PostCommand ( string address , string username , string password , string command ) ;
@ -19,6 +22,9 @@ namespace NzbDrone.Common
public class HttpProvider : IHttpProvider
{
public const string ContentLenghtHeader = "Content-Length" ;
private readonly IEnvironmentProvider _environmentProvider ;
private static readonly Logger logger = LogManager . GetCurrentClassLogger ( ) ;
private readonly string _userAgent ;
@ -54,6 +60,22 @@ namespace NzbDrone.Common
}
}
public Dictionary < string , string > DownloadHeader ( string url )
{
var headers = new Dictionary < string , string > ( ) ;
var request = WebRequest . Create ( url ) ;
request . Method = "HEAD" ;
var response = request . GetResponse ( ) ;
foreach ( var key in headers . Keys )
{
headers . Add ( key , response . Headers [ key ] ) ;
}
return headers ;
}
public Stream DownloadStream ( string url , NetworkCredential credential = null )
{
var request = ( HttpWebRequest ) WebRequest . Create ( url ) ;
@ -70,7 +92,7 @@ namespace NzbDrone.Common
try
{
var fileInfo = new FileInfo ( fileName ) ;
if ( ! fileInfo . Directory . Exists )
if ( fileInfo . Directory ! = null & & ! fileInfo . Directory . Exists )
{
fileInfo . Directory . Create ( ) ;
}