Пример #1
0
        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);
        }
Пример #2
0
 public HttpWebRequestWebReader(HttpWebRequestWebReaderManager webReaderManager, Uri baseAddress, Uri referrer, ContentType contentType, IContentTypeDetector contentTypeDetector)
 {
     if (null == webReaderManager)
     {
         throw new ArgumentNullException("webReaderManager");
     }
     if (contentTypeDetector == null)
     {
         throw new ArgumentNullException("contentTypeDetector");
     }
     this._webReaderManager    = webReaderManager;
     this._baseAddress         = baseAddress;
     this._referrer            = referrer;
     this.ContentType          = contentType;
     this._contentTypeDetector = contentTypeDetector;
 }