我正在尝试读取 500 MB 文本文件以通过 HttpWebRequest 发送其内容。根据我的要求,我无法分块发送数据。代码如下:
using (StreamReader reader = new StreamReader(filename))
{
postData = reader.ReadToEnd();
}
byte[] byteArray = Encoding.UTF8.GetBytes(postData);
request.ContentType = "text/plain";
request.ContentLength = byteArray.Length;
Stream dataStream = request.GetRequestStream();
dataStream.Write(byteArray, 0, byteArray.Length);
dataStream.Close();
WebResponse response = request.GetResponse();
Console.WriteLine(((HttpWebResponse)response).StatusDescription);
dataStream = response.GetResponseStream();
using (StreamReader reader = new StreamReader(dataStream))
{
responseFromServer = reader.ReadToEnd();
}
Console.WriteLine(responseFromServer);
dataStream.Close();
response.Close();
读取如此大的文件会导致内存不足异常。有什么办法可以做到这一点吗?
最佳答案
听起来您可能遇到 this documented issue with HttpWebRequest
。根据知识库文章,尝试将 HttpWebRequest.AllowWriteStreamBuffering
属性设置为 false
。
关于c# - 内存不足异常 - 读取 HttpWebRequest 的大文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11640844/