Example #1
0
        private void CopyNonCategorizedProperties(Root.Code.Models.E01D.Net.Http.Web.HttpWebRequest request)
        {
            request.NetworkClient.AllowAutoRedirect = request.Definition.AllowAutoRedirect;

            if (request.Definition.CachePolicy != null)
            {
                request.NetworkClient.CachePolicy = request.Definition.CachePolicy;
            }

            if (request.Definition.ClientCertificates != null)
            {
                request.NetworkClient.ClientCertificates = request.Definition.ClientCertificates;
            }

            // By default set all values.
            request.NetworkClient.AutomaticDecompression = request.Definition.AutomaticDecompression;

            request.NetworkClient.ServicePoint.Expect100Continue = request.Definition.Expect100Continue;

            // only set if allow auto redirects set to true and there is a maximum set.  Do not override the maximum value.
            if (request.Definition.AllowAutoRedirect && request.Definition.MaximumAutomaticRedirections.HasValue)
            {
                request.NetworkClient.MaximumAutomaticRedirections = request.Definition.MaximumAutomaticRedirections.Value;
            }

            if (request.Definition.Proxy != null)
            {
                request.NetworkClient.Proxy = request.Definition.Proxy;
            }

            if (!string.IsNullOrWhiteSpace(request.Definition.UserAgent))
            {
                request.NetworkClient.UserAgent = request.Definition.UserAgent;
            }
        }
Example #2
0
        public Root.Code.Models.E01D.Net.Http.Web.HttpWebResponse Invoke(Root.Code.Models.E01D.Net.Http.Web.HttpWebRequest request)
        {
            var response = new Root.Code.Models.E01D.Net.Http.Web.HttpWebResponse()
            {
                Request = request
            };

            // Create the web request
            request.NetworkClient = (System.Net.HttpWebRequest)WebRequest.Create(request.Definition.FullUrl);

            Copying.CopyToWebRequest(request);

            try
            {
                InvokeInternal(response);
            }
            catch (Exception e)
            {
                XLog.LogException(e);
                // Core.Logging.LogException( // needs to be a domain level context, the system context, that contains log sinks
                //EvoRest.Rest.Logging.LogException(response, e);
            }

            return(response);
        }
Example #3
0
        private void CopyTimeouts(Root.Code.Models.E01D.Net.Http.Web.HttpWebRequest request)
        {
            if (request.Definition.ReadWriteTimeout.HasValue)
            {
                request.NetworkClient.ReadWriteTimeout = request.Definition.ReadWriteTimeout.Value;
            }

            if (request.Definition.Timeout.HasValue)
            {
                request.NetworkClient.Timeout = request.Definition.Timeout.Value;
            }
        }
Example #4
0
        private void CopyAuthentication(Root.Code.Models.E01D.Net.Http.Web.HttpWebRequest request)
        {
            request.NetworkClient.UseDefaultCredentials = request.Definition.UseDefaultCredentials;

            request.NetworkClient.PreAuthenticate = request.Definition.PreAuthenticate;

            if (request.Definition.Credentials != null)
            {
                request.NetworkClient.Credentials = request.Definition.Credentials;
            }

            request.NetworkClient.ServerCertificateValidationCallback = request.Definition.ServerCertificateValidationCallback;
        }
Example #5
0
        private void CopyHeaders(Root.Code.Models.E01D.Net.Http.Web.HttpWebRequest request)
        {
            for (int i = 0; i < request.Definition.Headers.Count; i++)
            {
                var header = request.Definition.Headers.GetItem(i);

                if (request.Definition.ControlledHeaders.ContainsKey(header.Name))
                {
                    request.Definition.ControlledHeaders.GetValue(header.Name).Invoke(request, header.Value);
                }
                else
                {
                    request.NetworkClient.Headers.Add(header.Name, header.Value);
                }
            }
        }
Example #6
0
        public void CopyToWebRequest(Root.Code.Models.E01D.Net.Http.Web.HttpWebRequest request)
        {
            // Note - only override the web request default values when null is ok, or there is a value.

            // Set the HTTP method name
            request.NetworkClient.Method = request.Definition.MethodType.Name();

            CopyAuthentication(request);

            CopyCookies(request);

            CopyHeaders(request);

            CopyNonCategorizedProperties(request);

            CopyTimeouts(request);
        }
Example #7
0
        private void CopyCookies(Root.Code.Models.E01D.Net.Http.Web.HttpWebRequest request)
        {
            request.NetworkClient.CookieContainer = request.NetworkClient.CookieContainer ?? new CookieContainer();

            for (int i = 0; i < request.Definition.Headers.Count; i++)
            {
                var httpCookie = request.Definition.Headers.GetItem(i);

                var cookie = new Cookie
                {
                    Name   = httpCookie.Name,
                    Value  = httpCookie.Value,
                    Domain = request.NetworkClient.RequestUri.Host
                };

                request.NetworkClient.CookieContainer.Add(cookie);
            }
        }