public async Task RunAsync(RequestDelegate handler) { Array.ForEach(_urls, url => _httpListener.Prefixes.Add(url)); if (!_httpListener.IsListening) { _httpListener.Start(); } Console.WriteLine("Server started and is listening on: {0}", string.Join(';', _urls)); while (true) { var listenerContext = await _httpListener.GetContextAsync(); var feature = new HttpListenerFeature(listenerContext); var features = new FeatureCollection() .Set <IHttpRequestFeature>(feature) .Set <IHttpResponseFeature>(feature); var httpContext = new HttpContext.HttpContext(features); await handler(httpContext); listenerContext.Response.Close(); } }
public async Task StartAsync(RequestDelegate handler) { Array.ForEach(_urls, url => _httpListener.Prefixes.Add(url)); _httpListener.Start(); while (true) { var listenerContext = await _httpListener.GetContextAsync(); var feature = new HttpListenerFeature(listenerContext); var features = new FeatureCollection() .Set <IHttpRequestFeature>(feature) .Set <IHttpResponseFeature>(feature); var httpContext = new HttpContext(features); await handler(httpContext); listenerContext.Response.Close(); } }