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