private async Task ProcessRequestAsync(HttpListenerContext context) { await Task.Yield(); using (context.Response) { var utl = _urlProcessor.Process(context.Request.Url); var cookieContainer = _cookieProcessor.Process(utl, context.Request.Cookies); using (var handler = new HttpClientHandler { CookieContainer = cookieContainer }) using (var client = new HttpClient(handler)) { var message = context.Request.ToMessage(utl); var response = await client.SendAsync(message); await context.Response.CopyFromAsync(response, _responseContentProcessor); context.Response.Close(); } } }