我正在尝试使用webclient从codeplex.com下载文件。我可以下载一个文件,但它最终是html文件而不是.zip。看起来他们有一个重定向到下载文件的脚本。
任何人都有这方面的经验吗?
这是我的代码:
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Download_Click(object sender, EventArgs e)
{
WebClient webClient = new WebClient();
webClient.DownloadFileCompleted += new AsyncCompletedEventHandler(Completed);
webClient.DownloadProgressChanged += new DownloadProgressChangedEventHandler(ProgressChanged);
webClient.DownloadFileAsync(new Uri("http://dotnetnuke.codeplex.com/downloads/get/815672"), @"C:\DNN_Platform_07.02.02_Install.zip");
}
private void ProgressChanged(object sender, DownloadProgressChangedEventArgs e)
{
progressBar.Value = e.ProgressPercentage;
}
private void Completed(object sender, AsyncCompletedEventArgs e)
{
txtStatus.Text("Download completed!");
}
答案 0 :(得分:1)
将下载URL修改为此并检查您是否可以下载。
webClient.DownloadFileAsync(new Uri("http://download-codeplex.sec.s-msft.com/Download/Release?ProjectName=dotnetnuke&DownloadId=815672&FileTime=130397249034130000&Build=20885"), @"C:\DNN_Platform_07.02.02_Install.zip");
当从上一个URL触发下载请求时,这是通过使用Firebug检查站点获得的实际URL。虽然这适用于当前版本,但我不确定这是否会随着时间推移获取最新版本。我怀疑FileTime会改变。