protected WebRequest GetRequest(ResourceLocation location) { WebRequest request = WebRequest.Create(location.URL); request.Timeout = 30000; SetProxy(request); return request; }
public RemoteFileInfo GetFileInfo(ResourceLocation rl, out Stream stream) { FtpWebRequest request; RemoteFileInfo result = new RemoteFileInfo(); result.AcceptRanges = true; stream = null; request = (FtpWebRequest)GetRequest(rl); request.Method = WebRequestMethods.Ftp.GetFileSize; FillCredentials(request, rl); using (FtpWebResponse response = (FtpWebResponse)request.GetResponse()) { result.FileSize = response.ContentLength; } request = (FtpWebRequest)GetRequest(rl); request.Method = WebRequestMethods.Ftp.GetDateTimestamp; FillCredentials(request, rl); using (FtpWebResponse response = (FtpWebResponse)request.GetResponse()) { result.LastModified = response.LastModified; } return result; }
public Downloader( ResourceLocation rl, ResourceLocation[] mirrors, string localFile, int segmentCount) : this(rl, mirrors, localFile) { SetState(DownloaderState.NeedToPrepare); this.createdDateTime = DateTime.Now; this.requestedSegmentCount = segmentCount; this.segments = new List<Segment>(); }
public Stream CreateStream(ResourceLocation rl, long initialPosition, long endPosition) { FtpWebRequest request = (FtpWebRequest)GetRequest(rl); FillCredentials(request, rl); request.Method = WebRequestMethods.Ftp.DownloadFile; request.ContentOffset = initialPosition; WebResponse response = request.GetResponse(); return response.GetResponseStream(); }
public static ResourceLocation FromURL( string url, bool authenticate, string login, string password) { ResourceLocation rl = new ResourceLocation(); rl.URL = url; rl.Authenticate = authenticate; rl.Login = login; rl.Password = password; return rl; }
public virtual RemoteFileInfo GetFileInfo(ResourceLocation rl, out Stream stream) { HttpWebRequest request = (HttpWebRequest)GetRequest(rl); FillCredentials(request, rl); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); RemoteFileInfo result = new RemoteFileInfo(); result.MimeType = response.ContentType; result.LastModified = response.LastModified; result.FileSize = response.ContentLength; result.AcceptRanges = String.Compare(response.Headers["Accept-Ranges"], "bytes", true) == 0; stream = response.GetResponseStream(); return result; }
private void FillCredentials(HttpWebRequest request, ResourceLocation rl) { if (rl.Authenticate) { string login = rl.Login; string domain = string.Empty; int slashIndex = login.IndexOf('\\'); if (slashIndex >= 0) { domain = login.Substring(0, slashIndex); login = login.Substring(slashIndex + 1); } NetworkCredential myCred = new NetworkCredential(login, rl.Password); myCred.Domain = domain; request.Credentials = myCred; } }
public virtual Stream CreateStream(ResourceLocation rl, long initialPosition, long endPosition) { HttpWebRequest request = (HttpWebRequest)GetRequest(rl); FillCredentials(request, rl); if (initialPosition != 0) { if (endPosition == 0) { request.AddRange((int)initialPosition); } else { request.AddRange((int)initialPosition, (int)endPosition); } } WebResponse response = request.GetResponse(); return response.GetResponseStream(); }
public Downloader( ResourceLocation rl, ResourceLocation[] mirrors, string localFile, List<Segment> segments, RemoteFileInfo remoteInfo, int requestedSegmentCount, DateTime createdDateTime) : this(rl, mirrors, localFile) { if (segments.Count > 0) { SetState(DownloaderState.Prepared); } else { SetState(DownloaderState.NeedToPrepare); } this.createdDateTime = createdDateTime; this.remoteFileInfo = remoteInfo; this.requestedSegmentCount = requestedSegmentCount; this.segments = segments; }
private Downloader( ResourceLocation rl, ResourceLocation[] mirrors, string localFile) { this.threads = new List<Thread>(); this.resourceLocation = rl; if (mirrors == null) { this.mirrors = new List<ResourceLocation>(); } else { this.mirrors = new List<ResourceLocation>(mirrors); } this.localFile = localFile; extentedProperties = new Dictionary<string, object>(); defaultDownloadProvider = rl.BindProtocolProviderInstance(this); segmentCalculator = new MinSizeSegmentCalculator(); this.MirrorSelector = new SequentialMirrorSelector(); }
public void NewFileDownload(string fileName, string url, string location, int segments) { ResourceLocation rl = new ResourceLocation(); rl.Authenticate = false; rl.URL = url; rl.BindProtocolProviderType(); if (rl.ProtocolProviderType != null) { string localFile = string.Empty; if (segments > Settings.Default.MaxSegments) { segments = Settings.Default.MaxSegments; } if (segments < 1) { segments = 1; } localFile = GetLocalFile(fileName, url, location); Downloader download = WebAutomation.DownloadManager.DownloadManager.Instance.Add( rl, null, localFile, segments, false); } }
public static ResourceLocation FromURL(string url) { ResourceLocation rl = new ResourceLocation(); rl.URL = url; return rl; }
public Downloader Add(ResourceLocation rl, ResourceLocation[] mirrors, string localFile, List<Segment> segments, RemoteFileInfo remoteInfo, int requestedSegmentCount, bool autoStart, DateTime createdDateTime) { Downloader d = new Downloader(rl, mirrors, localFile, segments, remoteInfo, requestedSegmentCount, createdDateTime); Add(d, autoStart); return d; }
public Downloader Add(ResourceLocation rl, ResourceLocation[] mirrors, string localFile, int segments, bool autoStart) { Downloader d = new Downloader(rl, mirrors, localFile, segments); Add(d, autoStart); return d; }