使用asp.net webclient自动从codeplex.com下载

时间:2014-04-09 02:52:37

标签: asp.net webclient

我正在尝试使用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!");
        }

1 个答案:

答案 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会改变。