下载N兆字节的XML文件
本文关键字:XML 文件 字节 下载 | 更新日期: 2023-09-27 18:29:28
我想下载第一个N兆字节的巨大XML文件,这样我就可以用HTMLAgilityPack关闭损坏的标签。不幸的是,我不能使用XMLReader。
我试着在HTTP标头上设置范围,但似乎不起作用,所以现在我正在尝试这个:
public string download(string url, int mb)
{
Int32 bytesToGet = 1048576 * mb;
HttpWebRequest request;
request = WebRequest.Create(url) as HttpWebRequest;
var buffer = new char[bytesToGet];
using (WebResponse response = request.GetResponse())
{
using (StreamReader sr = new StreamReader(response.GetResponseStream()))
{
sr.Read(buffer, 0, bytesToGet);
}
}
return new string(buffer);
}
但这仍然不起作用。我用mb=5进行了尝试,结果只得到了XML文件的几行。
您只调用了Read()
一次,这并不能保证填充缓冲区。保持下载的字节数并继续读取,直到缓冲区已满或流结束:
int offset = 0;
int bytesRead = 0;
do
{
bytesRead = sr.Read(buffer, offset, bytesToGet - offset);
offset += bytesRead;
} while (bytesRead > 0);