我用C#写了一个下载文件的练习,发现下载像http://attach.ikunlun.net/000/013/677/565.rar
这样有绝对URL的文件时没有问题,但是下载像
http://count.crsky.com/view_down.asp?downd_id=8&downd=0&ID=23236&down=yes
这样的动态URL的文件时下载完毕后调用request.abort()似乎不能正常取消请求,在防火墙里仍然能看到程序连接,那位能帮忙看下应该如何改正?代码如下(写得有点乱):
byte[] bydata = new byte[512];
int nreadsize = 0;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URLBOX.Text);long filesize = request.GetResponse().ContentLength;string filename = request.Address.Segments[request.Address.Segments.Length - 1];string absPath = request.Address.AbsoluteUri;
Stream sr = request.GetResponse().GetResponseStream();
FileStream fs = new FileStream(@"c:\" + filename, FileMode.Create);nreadsize = sr.Read(bydata, 0, 512);
while (nreadsize > 0)
{
fs.Write(bydata, 0, nreadsize);
nreadsize = sr.Read(bydata, 0, 512);
}
sr.Close();
fs.Close();
request.Abort();