У меня есть простой код, который загружает файл с указанного URL-адреса, и он отлично работает в Windows 7, но когда я запускаю его в Windows 8.1, загруженный файл поврежден. В чем проблема?
Это код и URL:
WebClient wClient = new WebClient();
wClient.DownloadFile(@"http://members.tsetmc.com/tsev2/excel/MarketWatchPlus.aspx?d=0", "dl.xlsx");
Этот URL-адрес не обеспечивает то, что вы ожидаете. Используйте Fiddler, чтобы узнать, что происходит на уровне HTTP. Вам нужно узнать, что серверу необходимо в качестве входных данных для ответа на правильный контент.
Благодаря 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;
}
}
Но все же я не знаю, почему мой начальный код работает без проблем на моем ПК!