public virtual HttpMessageHandler CreateHttpHandler(TimeSpan?connectTimeout) { var handler = new TCPHttpMessageHandler(new ClientOptions() { IncludeHeaders = false }); if (connectTimeout != null) { handler.Options.ConnectTimeout = connectTimeout.Value; } return(handler); }
public virtual HttpMessageHandler CreateHttpHandler(TumblerProtocolType tumblerProtocol, TimeSpan?connectTimeout) { if (tumblerProtocol == TumblerProtocolType.Http) { return(new HttpClientHandler()); } else if (tumblerProtocol == TumblerProtocolType.Tcp) { var handler = new TCPHttpMessageHandler(new ClientOptions() { IncludeHeaders = false }); if (connectTimeout != null) { handler.Options.ConnectTimeout = connectTimeout.Value; } return(handler); } throw new NotImplementedException($"Tumbler Protocol type {tumblerProtocol} is not implemented."); }
public void CanEvictConnections() { using (var host = CreateHost(new ServerOptions(serverBind) { MaxConnections = 1 })) { var client1Handler = new TCPHttpMessageHandler(new ClientOptions() { AutoReconnect = false }); using (var client1 = new HttpClient(client1Handler)) { var nico = client1.GetAsync("http://127.0.0.1:29472/v1/hello/nico").Result.Content.ReadAsStringAsync().Result; using (var client2 = new HttpClient(new TCPHttpMessageHandler())) { nico = client2.GetAsync("http://127.0.0.1:29472/v1/hello/nico").Result.Content.ReadAsStringAsync().Result; Assert.Throws <IOException>(() => client1.GetAsync("http://127.0.0.1:29472/v1/hello/nico").GetAwaiter().GetResult()); client1Handler.Options.AutoReconnect = true; client1.GetAsync("http://127.0.0.1:29472/v1/hello/nico").GetAwaiter().GetResult(); } } } }