WebClient在Windows 8.1中下载损坏的文件

时间:2014-10-05 19:02:16

标签: c# windows webclient

我有一个简单的代码从指定的URL下载文件,它在Windows 7中运行良好,但是当我在Windows 8.1中运行它时,下载的文件已损坏。问题出在哪儿?

这是代码和网址:

WebClient wClient = new WebClient();
wClient.DownloadFile(@"http://members.tsetmc.com/tsev2/excel/MarketWatchPlus.aspx?d=0", "dl.xlsx");

2 个答案:

答案 0 :(得分:1)

此网址无法满足您的期望。使用Fiddler查找HTTP级别发生的情况。您需要找出服务器需要的输入以响应正确的内容。

答案 1 :(得分:1)

感谢 usr 寻求帮助,我发现了问题,服务器以GZip格式返回文件,所以我调整了代码:

public class WebDownload : WebClient
{
    protected override WebRequest GetWebRequest(Uri address)
    {
        HttpWebRequest request = (HttpWebRequest)base.GetWebRequest(address);
        if (request != null)
        {
            request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;
        }
        return request;
    }
}

但我仍然不知道为什么我的初始代码在我的电脑中运行没有问题!