代码无法正确下载文件
问题描述:
我正在尝试用c#下载IronPython。代码无法正确下载文件
原始文件大小= 15,6MB,但是当我点击下载它时,会得到一个大小为16KB的文件。
这是我的下载代码:
string[] a = lsrv.GetLinks();
string iron = a[0].ToString();
//here is my string iron = http://ironpython.codeplex.com/downloads/get/970325
using (WebClient wc = new WebClient())
{
wc.DownloadProgressChanged += wc_DownloadProgressChanged;
wc.DownloadFileAsync(new System.Uri(iron),
"C:\\Users\\Hp\\Downloads\\IronPython-2.7.5.msi");
}
有什么不对?有任何想法吗?
答
实际上并不是下载文件,而是开始下载的页面。
CodePlex使用奇怪的下载JavaScript方法。真正的文件位于:http://download-codeplex.sec.s-msft.com/Download/Release?ProjectName=ironpython&DownloadId=970325&FileTime=130623736019230000&Build=21031。
如果你把它放进去,文件会实际下载。
+0
非常感谢Patrick.I已经改变了链接,它下载了15,6MB的正确文件。非常棒! – aRRoyo
答
如果你看看有问题的HTML,你会发现它开始通过Javascript下载。这个代码不会仅仅通过下载网页来执行。
<script type="text/javascript">
$(document).ready(function() {
startDownload();
});
</script>
您似乎没有在等待下载完成... – nvoigt
Web安装程序版本是否也存在? – ehh
您使用的链接仅指向重定向到实际下载的HTML文件。用文本编辑器打开下载的16kb文件,它是否包含HTML?如果是,WebClient不会遵循重定向,您需要提供正确的URL。 –