Can you try something like this,
protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
{
HttpContext httpcontext = _accessor.HttpContext;
HttpRequest request = httpcontext.Request;
string requestBodyString;
try
{
request.EnableBuffering();
var buffer = new byte[Convert.ToInt32(request.ContentLength)];
await request.Body.ReadAsync(buffer, 0, buffer.Length);
requestBodyString = Encoding.UTF8.GetString(buffer);
}
finally
{
request.Body.Position = 0;
}
// TODO: use requestBodyString
}