【问题标题】:.Net HTTP POST FileStream / without using MemoryStream.Net HTTP POST FileStream / 不使用 MemoryStream
【发布时间】:2015-08-07 13:40:03
【问题描述】:

HttpClient.PostAsync(uri, StreamContent) 似乎在幕后使用MemoryStream,即使我使用FileStream 创建StreamContent。有没有办法在不使用MemoryStream 的情况下从.Net 到HTTP POSTFileStream?我可以修改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


【解决方案1】:

解决方案是使用HttpWebRequest 并按照here 的描述设置AllowWriteStreamBuffering = false

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多