public async Task Invoke(HttpContext context, IClientProvider provider) { HttpClient calendarClient = null; HttpClient CalcClient = null; try { // //get the respective client // calendarClient = provider.GetClientFor("calendar"); CalcClient = provider.GetClientFor("calc"); // //call the calendar api // var calendarResponse = ""; if (context.Request.Path.Value == "/today") { calendarResponse = await calendarClient.GetStringAsync("http://www.calendarApi.io/today"); } else if (context.Request.Path.Value == "/yesterday") { calendarResponse = await calendarClient.GetStringAsync("http://www.calendarApi.io/yesterday"); } else { context.Response.StatusCode = (int)HttpStatusCode.NotFound; //does not process further return; } // //call another api // var calcResponse = await CalcClient.GetStringAsync("http://www.calcApi.io/count"); // // write the final response // await context.Response.WriteAsync(calendarResponse + " count is " + calcResponse); // await next(context); } finally { if (calendarClient != null) { calendarClient.Dispose(); } if (CalcClient != null) { CalcClient.Dispose(); } } }