public async Task <IWebStreamResponse> GetWebStreamAsync(Uri url, bool waitForContent, CancellationToken cancellationToken, Uri referrer = null, long?from = null, long?to = null, WebResponse webResponse = null)
        {
            HttpWebRequest  request  = this._webReaderManager.CreateRequest(url, referrer, (IWebReader)this, this.ContentType, (string)null, waitForContent, from, to);
            HttpWebResponse response = await HttpWebRequestExtensions.SendAsync(request, cancellationToken).ConfigureAwait(false);

            this.Update(url, response, webResponse);
            return((IWebStreamResponse) new HttpWebRequestWebStreamResponse(request, response));
        }
        internal async Task <HttpWebResponse> SendAsync(Uri url, IWebReader parent, CancellationToken cancellationToken, string method = null, ContentType contentType = null, bool allowBuffering = true, Uri referrer = null, long?fromBytes = null, long?toBytes = null)
        {
            HttpWebRequest request = this.CreateRequest(url, referrer, parent, contentType, method, allowBuffering, fromBytes, toBytes);

            return(await HttpWebRequestExtensions.SendAsync(request, cancellationToken).ConfigureAwait(false));
        }