初学C#,很想自己写一个下载器,在网上找了很多资料,都是2003或者以前版本的,而且也写的很长,不好看懂,今天自己看着MSDN写了一个超简单的,一个窗口,一个按钮,只为测试,先记录下代码:
private
void
button1_Click(
object
sender, EventArgs e)
... {
//发送一个请求
HttpWebRequest HW = (HttpWebRequest)WebRequest.Create("http://kltscb.drivehq.com/csq.txt");
//返回响应
HttpWebResponse HR = (HttpWebResponse)HW.GetResponse();
//看看长度
MessageBox.Show(HR.ContentLength.ToString());
//再看看类型
MessageBox.Show(HR.ContentType);
//想下载,创建一个流
Stream SM = HR.GetResponseStream();
//用二进制的(在这里也可用文本的)
BinaryReader readStream = new BinaryReader(SM);
//下载时的缓冲(就和原文件一样了,只有18K,18080个byte)
byte[] files = new byte[(int)HR.ContentLength];
//下载
files = readStream.ReadBytes((int)HR.ContentLength);
//关闭流,也就关闭了Response
readStream.Close();
//再再从内存中保存到本地
FileStream FS = new FileStream("c:/test.txt", FileMode.Create, FileAccess.Write);
FS.Write(files, 0,files.Length);
FS.Flush();
FS.Close();
}
... {
//发送一个请求
HttpWebRequest HW = (HttpWebRequest)WebRequest.Create("http://kltscb.drivehq.com/csq.txt");
//返回响应
HttpWebResponse HR = (HttpWebResponse)HW.GetResponse();
//看看长度
MessageBox.Show(HR.ContentLength.ToString());
//再看看类型
MessageBox.Show(HR.ContentType);
//想下载,创建一个流
Stream SM = HR.GetResponseStream();
//用二进制的(在这里也可用文本的)
BinaryReader readStream = new BinaryReader(SM);
//下载时的缓冲(就和原文件一样了,只有18K,18080个byte)
byte[] files = new byte[(int)HR.ContentLength];
//下载
files = readStream.ReadBytes((int)HR.ContentLength);
//关闭流,也就关闭了Response
readStream.Close();
//再再从内存中保存到本地
FileStream FS = new FileStream("c:/test.txt", FileMode.Create, FileAccess.Write);
FS.Write(files, 0,files.Length);
FS.Flush();
FS.Close();
}
由于是初学,错误在所难免,有帮助的就看,没帮助的就闪,发现错误的欢迎指正(如果想测试把地址改了,说不定今天链接就失效了)
如果只是看下载的话也只用了9行,其实还可以短的,不过.net提供了太多东西,所以下载也就这么回事,接下来的事就是多线程,还有断点续传,还有多任务,还有........总之很多了,想的到的就做的到(也许吧)