using System;
using System.Net.Http;
using System.Threading;
using System.Threading.Tasks;
namespace FastGithub.ReverseProxy
{
    /// 
    /// YARP的HttpClient
    /// 
    class HttpClient : HttpMessageInvoker
    {
        private readonly string tlsSniValue;
        /// 
        /// YARP的HttpClient
        /// 
        /// 
        /// 
        /// 
        public HttpClient(HttpMessageHandler handler, string tlsSniValue, bool disposeHandler = false) :
            base(handler, disposeHandler)
        {
            this.tlsSniValue = tlsSniValue;
        }
        /// 
        /// 发送数据
        /// 
        /// 
        /// 
        /// 
        public override Task SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
        {
            var isHttps = request.RequestUri?.Scheme == Uri.UriSchemeHttps;
            request.SetSniContext(new SniContext(isHttps, this.tlsSniValue));
            return base.SendAsync(request, cancellationToken);
        }
    }
}