/// <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)); }