我正在嘗試讀取500 MB文本文件以通過HttpWebRequest發送內容。根據我的要求,我無法以大塊的形式發送數據。代碼如下:內存不足異常 - 爲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();
讀這樣大的文件會給我內存不足的例外。有什麼辦法可以做到這一點?
爲什麼你不能以大塊的形式發送它?那究竟是什麼意思?你的意思是你不能使用[chunked transfer encoding](http://en.wikipedia.org/wiki/Chunked_transfer_encoding)或其他的東西? – svick 2012-07-25 00:03:03
@svick:我的意思是我發送數據的URL應該只產生一個響應..這相當於一份工作。所以我希望將發送的數據作爲一項工作。 – kanu 2012-07-25 00:22:36