public async Task maybe_itll_fail_i_dont_even() { var toServer = new WebHostBuilder() .UseKestrel() .UseUrls("http://127.0.0.1:0") .Configure(app => { app.Run(async context => { await context.Response.WriteAsync("hello"); }); }) .Build(); await toServer.StartAsync(); var toPort = toServer.Port(); var rpClient = new ReproReverseProxy(); var fromServer = new WebHostBuilder() .Configure(app => { app.Run(async context => { var targetResponse = await rpClient.Send(context, $"http://127.0.0.1:{toPort}"); await ReproCodec.Write(context, targetResponse); }); }) .UseKestrel() .UseUrls("http://127.0.0.1:0") .Build(); await fromServer.StartAsync(); var client = new HttpClient(); var response = await client.GetAsync($"http://127.0.0.1:{fromServer.Port()}"); response.EnsureSuccessStatusCode(); }