21 lines
950 B
C#
21 lines
950 B
C#
using Yarp.ReverseProxy.Forwarder;
|
|
|
|
namespace MP.RIOC.Services
|
|
{
|
|
public class PreserveBodyTransformer : HttpTransformer
|
|
{
|
|
public override async ValueTask TransformRequestAsync(HttpContext httpContext, HttpRequestMessage proxyRequest, string destinationPrefix, CancellationToken cancellationToken)
|
|
{
|
|
// 1. Lascia che YARP faccia il lavoro pesante di copia (headers, etc.)
|
|
await base.TransformRequestAsync(httpContext, proxyRequest, destinationPrefix, cancellationToken);
|
|
|
|
// 2. Il metodo viene già gestito da YARP, ma forzarlo non fa male
|
|
proxyRequest.Method = new HttpMethod(httpContext.Request.Method);
|
|
|
|
// NOTA: Se non stai leggendo il body qui per fare logging,
|
|
// rimuovi completamente EnableBuffering e il reset della Position.
|
|
// YARP leggerà lo stream direttamente da httpContext.Request.Body verso il backend.
|
|
}
|
|
}
|
|
}
|