internal virtual HttpWebRequest CreateRequest(Uri url, Uri referrer, IWebReader parent, ContentType contentType, string method = null, bool allowBuffering = false, long?fromBytes = null, long?toBytes = null) { referrer = referrer ?? HttpWebRequestWebReaderManager.GetReferrer(parent); if ((Uri)null == url && null != parent) { url = parent.RequestUri ?? parent.BaseAddress; } if ((Uri)null != referrer && ((Uri)null == url || !url.IsAbsoluteUri)) { url = new Uri(referrer, url); } HttpWebRequest webRequest = this._httpWebRequests.CreateWebRequest(url, referrer, method, contentType, allowBuffering, fromBytes, toBytes); if (null != this._webReaderManagerParameters.DefaultHeaders) { foreach (KeyValuePair <string, string> keyValuePair in this._webReaderManagerParameters.DefaultHeaders) { try { webRequest.Headers[keyValuePair.Key] = keyValuePair.Value; } catch (ArgumentException ex) { Debug.WriteLine("HttpWebRequestWebReaderManager.CreateRequest({0}) header {1}={2} failed: {3}", (object)url, (object)keyValuePair.Key, (object)keyValuePair.Value, (object)ExceptionExtensions.ExtendedMessage((Exception)ex)); } } } return(webRequest); }