private HttpRequestMessage GetRequest(HttpContext context, ServiceConfig config) { var request = new HttpRequestMessage { Method = new HttpMethod(context.Request.Method) }; if (!StringComparer.OrdinalIgnoreCase.Equals(context.Request.Method, "GET") && !StringComparer.OrdinalIgnoreCase.Equals(context.Request.Method, "HEAD") && !StringComparer.OrdinalIgnoreCase.Equals(context.Request.Method, "DELETE") && !StringComparer.OrdinalIgnoreCase.Equals(context.Request.Method, "TRACE")) { request.Content = new StreamContent(context.Request.Body); } foreach (var header in context.Request.Headers) { if (request.Headers.TryAddWithoutValidation(header.Key, header.Value.ToArray())) { continue; } request.Content.Headers.TryAddWithoutValidation(header.Key, header.Value.ToArray()); } request.RequestUri = config.GetRequestUri(context.Request.Path, context.Request.QueryString.ToString()); request.Headers.Host = config.GetHost(); var systemToken = _jwtTokenService.GenerateSystemToken(context.User.Claims); request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", systemToken); return(request); }