asp.net核心1.0 mvc。从Request.Body
问题描述:
获取原始内容我试图在asp.net核心1.0中获得Request.Body
的原始内容,我想知道将整个机构作为byte[]
的正确方法是什么。如果您有类似情况的任何经验并知道“正确”的做法,请分享。我会很感激。 谢谢先进。asp.net核心1.0 mvc。从Request.Body
答
Request.Body
是一个流。该流有Read
方法,该方法需要一个可以读取数据的字节数组缓冲区。由于您可能不知道流的大小,即使不是所有内容都可用,您需要在循环中执行此操作,直到您读取流中的所有数据为止 - this *答案显示如何做到这一点(如果您不'要阻止你的线程可以使用ReadAsync)。另外 - 如果你想阅读一个字符串的内容,你可以使用StreamReader
类。
答
我用这个代码...
using (var requestBodyStream = new MemoryStream())
{
var body = request.Body;
await request.Body.CopyToAsync(requestBodyStream);
requestBodyStream.Seek(0, SeekOrigin.Begin);
requestPayload.Body = await new StreamReader(requestBodyStream).ReadToEndAsync();
}