Esempio n. 1
0
        /// <summary>
        /// Checks to see if the host on a http request message should be overriden.
        /// </summary>
        /// <param name="instance">The Http Request Message.</param>
        /// <param name="hostOverride">The Host Override implementation to check.</param>
        public static void CheckForHostnameOverride(
            this HttpRequestMessage instance,
            IHostOverride hostOverride)
        {
            if (instance == null)
            {
                throw new ArgumentNullException(nameof(instance));
            }

            if (hostOverride == null)
            {
                throw new ArgumentNullException(nameof(hostOverride));
            }

            var requestUri = instance.RequestUri;
            var host       = requestUri.Host;
            var target     = hostOverride.Resolve(host) ?? host;

            var builder = new UriBuilder(requestUri)
            {
                Host = target,
            };

            instance.RequestUri = builder.Uri;
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="HostOverridableHttpClientHandler"/> class.
 /// </summary>
 /// <param name="hostOverride">Implementation of a host override helper.</param>
 public HostOverridableHttpClientHandler(IHostOverride hostOverride)
 {
     _hostOverride = hostOverride ?? throw new ArgumentNullException(nameof(hostOverride));
 }