【发布时间】:2015-08-07 13:40:03
【问题描述】:
HttpClient.PostAsync(uri, StreamContent) 似乎在幕后使用MemoryStream,即使我使用FileStream 创建StreamContent。有没有办法在不使用MemoryStream 的情况下从.Net 到HTTP POST 和FileStream?我可以修改MS.Internal.InternalWebRequestStream.Write(参见下面的堆栈跟踪)以不使用MemoryStream吗?
堆栈跟踪:
Exception of type 'System.OutOfMemoryException' was thrown.
at System.IO.MemoryStream.set_Capacity(Int32 value)
at System.IO.MemoryStream.EnsureCapacity(Int32 value)
at System.IO.MemoryStream.Write(Byte[] buffer, Int32 offset, Int32 count)
at MS.Internal.InternalWebRequestStream.Write(Byte[] buffer, Int32 offset, Int32 count)
at System.IO.Stream.<BeginWriteInternal>b__11(Object param0)
at System.Threading.Tasks.Task`1.InnerInvoke()
at System.Threading.Tasks.Task.Execute()
【问题讨论】:
-
您似乎忘记发布代码了..
-
@EZI 我添加了一些代码。看起来
HttpWebRequest.GetRequestStream可能就是我想要的。 -
你没有
DisposeHttpClient。将所有内容放入 using 块中。你也处理 FileStream 吗?
标签: c# .net post windows-phone