public async Task Invoke(HttpContext context, IProxyHttpClient client, ProxyRequest proxyRequest)
        {
            var request  = context.Request;
            var response = context.Response;

            var requestMessage = await proxyRequest.Create(request);

            if (request.Headers.ContainsKey(Headers.SHOW_PROXY_REQUEST))
            {
                response.StatusCode = 200;
                var requestModel = await RequestModel.Create(requestMessage);

                await response.WriteAsync(JsonConvert.SerializeObject(requestModel, Formatting.Indented));

                return;
            }

            var proxyResponse = await client.SendAsync(requestMessage);

            if (request.Headers.ContainsKey(Headers.SHOW_PROXY_RESPONSE))
            {
                response.StatusCode = 200;
                var requestModel = await RequestModel.Create(requestMessage);

                var responseModel = await ResponseModel.Create(proxyResponse);

                await response.WriteAsync(JsonConvert.SerializeObject(new
                {
                    Request  = requestModel,
                    Response = responseModel
                }, Formatting.Indented));

                return;
            }

            await response.Write(proxyResponse);
        }
Ejemplo n.º 2
0
 public ProxyController(IProxyHttpClient proxyHttpClient, ILogger <ProxyController> logger)
 {
     _proxyHttpClient = proxyHttpClient;
     _logger          = logger;
 }
Ejemplo n.º 3
0
 public ProxyRequestService(IProxyHttpClient proxyHttpClient)
 {
     _proxyHttpClient = proxyHttpClient;
 }