Я создаю прокси-сервер APIGateway для нашей платформы микросервисов ядра dotnet.
Я использовал https://medium.com/@mirceaoprea/api-gateway-aspnet-core-a46ef259dc54 в качестве отправной точки, при этом все запросы обрабатываются с помощью
app.Run(async (context) =>
{
// Do things with context
});
У вас есть контекст для запроса к шлюзу, но как мне скопировать данные содержимого из запроса к шлюзу на новый запрос, который я собираюсь сделать к моему API?
Я вижу возможность установитьсодержимое запроса к объекту HttpContent:
newRequest.Content = new StringContent(requestContent, Encoding.UTF8, "application/json");
Но я хочу, чтобы мое приложение выполняло загрузку файлов через шлюз, единственный способ, который я нашел, - это создать MultipartFormDataContent, но все примеры того, каксоздайте MultipartFormDataContent, используя IFormFile вместо HttpContext.
Можно ли просто скопировать содержимое исходного запроса apigateway в мой внутренний запрос:
using (var newRequest = new HttpRequestMessage(new HttpMethod(request.Method), serviceUrl))
{
// Add headers, etc
newRequest.Content = // TODO: how to get content from HttpContext
using (var serviceResponse = await new HttpClient().SendAsync(newRequest))
{
// handle response
}
}