本文整理汇总了C#中System.Net.Http.StreamContent.CopyToAsync方法的典型用法代码示例。如果您正苦于以下问题:C# StreamContent.CopyToAsync方法的具体用法?C# StreamContent.CopyToAsync怎么用?C# StreamContent.CopyToAsync使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Net.Http.StreamContent
的用法示例。
在下文中一共展示了StreamContent.CopyToAsync方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: CopyToAsync
public void CopyToAsync ()
{
var ms = new MemoryStream ();
ms.WriteByte (4);
ms.WriteByte (2);
ms.Seek (0, SeekOrigin.Begin);
var sc = new StreamContent (ms);
var dest = new MemoryStream ();
var task = sc.CopyToAsync (dest);
task.Wait ();
Assert.AreEqual (2, dest.Length, "#1");
bool hit = false;
dest = new MemoryStream ();
var scm = new StreamContentMock (new ExceptionStream ());
scm.OnSerializeToStreamAsync = () => { hit = true; };
task = scm.CopyToAsync (dest);
try {
task.Wait ();
Assert.Fail ("#9");
} catch (AggregateException) {
}
Assert.IsTrue (hit, "#10");
}
示例2: CopyToAsync_ClosedInput
public void CopyToAsync_ClosedInput ()
{
var stream = new MemoryStream (new byte[] { 1 });
var content = new StreamContent (stream);
Assert.IsTrue (content.LoadIntoBufferAsync ().Wait (3000), "#1");
stream.Close ();
var stream_out = new MemoryStream (10);
Assert.IsTrue (content.CopyToAsync (stream_out).Wait (3000), "#2");
}
示例3: CopyToAsync_Invalid
public void CopyToAsync_Invalid ()
{
var m = new MemoryStream ();
var sc = new StreamContent (new MemoryStream ());
try {
sc.CopyToAsync (null);
Assert.Fail ("#1");
} catch (ArgumentNullException) {
}
//
// For some reason does not work on .net
//
/*
sc = new StreamContent (new ExceptionStream ());
try {
sc.CopyToAsync (m).Wait ();
Assert.Fail ("#2");
} catch (AggregateException) {
}
*/
}
示例4: 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);
}