直接用WebClient下载不就行了吗,干嘛还要定义一个WebRequest如下
using System.Net;
WebClient web = new WebClient();
private void button1_Click(object sender, EventArgs e)//下载
{
string app = "http://www.java.net/download/jdk6/6u10/promoted/b28/binaries/jdk-6u10-rc-bin-b28-windows-i586-p-21_jul_2008.exe";
string filename = "D://JDK6.exe";
web.DownloadFileCompleted += new AsyncCompletedEventHandler(web_DownloadFileCompleted);
web.DownloadProgressChanged += new DownloadProgressChangedEventHandler(web_DownloadProgressChanged);
web.DownloadFileAsync(new Uri(app), filename);
}
private void button2_Click(object sender, EventArgs e)//取消
{
web.CancelAsync();
}
void web_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
{
label1.Text = string.Format("开始下载文件... 已下载:{0}Mb 剩余:{1}Mb 已完成:{2}%",
e.BytesReceived / 1024 / 1024,
e.TotalBytesToReceive / 1024 / 1024,
e.ProgressPercentage.ToString("N2"));
}
void web_DownloadFileCompleted(object sender, AsyncCompletedEventArgs e)
{
if (e.Cancelled)
label1.Text = "下载取消";
else
label1.Text = "下载完毕";
}