本文整理汇总了C#中IOwinRequest.GetContentLength方法的典型用法代码示例。如果您正苦于以下问题:C# IOwinRequest.GetContentLength方法的具体用法?C# IOwinRequest.GetContentLength怎么用?C# IOwinRequest.GetContentLength使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IOwinRequest
的用法示例。
在下文中一共展示了IOwinRequest.GetContentLength方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: CreateBufferedRequestContentAsync
private static async Task<HttpContent> CreateBufferedRequestContentAsync(IOwinRequest owinRequest,
CancellationToken cancellationToken)
{
// We need to replace the request body with a buffered stream so that other components can read the stream.
// For this stream to be useful, it must NOT be diposed along with the request. Streams created by
// StreamContent do get disposed along with the request, so use MemoryStream to buffer separately.
MemoryStream buffer;
int? contentLength = owinRequest.GetContentLength();
if (!contentLength.HasValue)
{
buffer = new MemoryStream();
}
else
{
buffer = new MemoryStream(contentLength.Value);
}
cancellationToken.ThrowIfCancellationRequested();
using (StreamContent copier = new StreamContent(owinRequest.Body))
{
await copier.CopyToAsync(buffer);
}
// Provide the non-disposing, buffered stream to later OWIN components (set to the stream's beginning).
buffer.Position = 0;
owinRequest.Body = buffer;
// For MemoryStream, Length is guaranteed to be an int.
return new ByteArrayContent(buffer.GetBuffer(), 0, (int)buffer.Length);
}