System.Net.HttpWebRequest.AddRange C# (CSharp) Метод

AddRange() приватный Метод

private AddRange ( string rangeSpecifier, string from, string to ) : bool
rangeSpecifier string
from string
to string
Результат bool
        private bool AddRange(string rangeSpecifier, string from, string to)
        {

            string curRange = _webHeaderCollection[HttpKnownHeaderNames.Range];

            if ((curRange == null) || (curRange.Length == 0))
            {
                curRange = rangeSpecifier + "=";
            }
            else
            {
                if (String.Compare(curRange.Substring(0, curRange.IndexOf('=')), rangeSpecifier, StringComparison.OrdinalIgnoreCase) != 0)
                {
                    return false;
                }
                curRange = string.Empty;
            }
            curRange += from.ToString();
            if (to != null)
            {
                curRange += "-" + to;
            }            
            _webHeaderCollection[HttpKnownHeaderNames.Range] =  curRange;
            return true;
        }

Same methods

HttpWebRequest::AddRange ( int range ) : void
HttpWebRequest::AddRange ( int from, int to ) : void
HttpWebRequest::AddRange ( long range ) : void
HttpWebRequest::AddRange ( long from, long to ) : void
HttpWebRequest::AddRange ( string rangeSpecifier, int range ) : void
HttpWebRequest::AddRange ( string rangeSpecifier, int from, int to ) : void
HttpWebRequest::AddRange ( string rangeSpecifier, long range ) : void
HttpWebRequest::AddRange ( string rangeSpecifier, long from, long to ) : void

Usage Example

Пример #1
1
        /// <summary>
        /// Download a file from the specified url and copy it to the specified path
        /// </summary>
        private void DownloadFile(string url, string path, long startPoint)
        {
            int startingPoint = Convert.ToInt32(startPoint);

            try
            {
                //For using untrusted SSL Certificates
                ServicePointManager.ServerCertificateValidationCallback += new RemoteCertificateValidationCallback(OnCheckRemoteCallback);

                _Request = (HttpWebRequest)HttpWebRequest.Create(url);
                _Request.AddRange(startingPoint);

                if (!string.IsNullOrEmpty(LoginUsername))
                {
                    _Request.Credentials = new NetworkCredential(LoginUsername, LoginPassword);
                }
                else
                {
                    _Request.Credentials = CredentialCache.DefaultCredentials;
                }

                if (ProxyEnabled)
                {
                    _Request.Proxy = new WebProxy(ProxyURL);
                }

                _Response = (HttpWebResponse)_Request.GetResponse();
                Stream responseSteam = _Response.GetResponseStream();

                if (startingPoint == 0)
                {
                    _SaveFileStream = new FileStream(path, FileMode.Create, FileAccess.Write, FileShare.ReadWrite);
                }
                else
                {
                    _SaveFileStream = new FileStream(path, FileMode.Append, FileAccess.Write, FileShare.ReadWrite);
                }

                int bytesSize;
                long fileSize = _Response.ContentLength;
                byte[] downloadBuffer = new byte[DEF_PACKET_LENGTH];

                OnProgressChanged(new DownloadProgressEventArgs(fileSize, 0, "Starting the download..."));

                while ((bytesSize = responseSteam.Read(downloadBuffer, 0, downloadBuffer.Length)) > 0 && !_ExitThread)
                {
                    if (_ExitThread)
                    {
                        break;
                    }

                    _SaveFileStream.Write(downloadBuffer, 0, bytesSize);
                    OnProgressChanged(new DownloadProgressEventArgs(_SaveFileStream.Length, fileSize + startingPoint, "Download in progress..."));
                }

                if (_ExitThread)
                {
                    _SaveFileStream.Close();
                    _SaveFileStream.Dispose();
                    OnDownloadCompleted(new DownloadCompleteEventArgs(false, true));

                    return;
                }

                OnDownloadCompleted(new DownloadCompleteEventArgs(true, false));
            }
            catch (Exception ex)
            {
                OnDownloadError(new DownloadErrorEventArgs(ex, string.Format("Problem downloading and copying file from {0} to {1}.", url, path)));
                OnDownloadCompleted(new DownloadCompleteEventArgs(false, false));
            }
            finally
            {
                if (_SaveFileStream != null)
                {
                    _SaveFileStream.Close();
                    _SaveFileStream.Dispose();
                }

                if (_Response != null)
                {
                    _Response.Close();
                }
            }
        }
All Usage Examples Of System.Net.HttpWebRequest::AddRange