通过C#下载间接URL

我有一个间接的链接,生成一个Excel文件。 我搜查了很多,发现有些方法没有做到我所需要的。 链接地址不是直接引用excel文件,原因是每当请求URL时,网页会创build一个新的excel文件__refreshes内容。 我使用了下面提到的不同的方法。 我真正想要做的是,不用打开浏览器,我想下载的URL(这是一个Excel文件)的内容,并保存为一个Excel文件。 这里是链接 ,如果你点击它,你将直接得到一个excel文件,但是URL本身不包含excel文件的扩展名。
我用了以下方法:

client.DownloadFile(@"http://members.tsetmc.com/tsev2/excel/MarketWatchPlus.aspx?d=0", @"D:\a.xlsx"); 

上述方法保存的内容,但不幸的是它不能通过Excel显示,我不知道原因。

 WebRequest request = HttpWebRequest.Create(@"http://members.tsetmc.com/tsev2/excel/MarketWatchPlus.aspx?d=0"); using (WebResponse response = request.GetResponse()) { Stream responseStream = response.GetResponseStream(); StreamReader r = new StreamReader(responseStream); //third party methods } 

此外上面的代码被用于search,但它没有提供我所需要的,我用一些第三方的dlls保存stream作为Excel文件,再次保存的文件不能通过Excel打开。 我也使用Process.Start,但它打开浏览器。 我不想打开任何浏览器。

它是压缩的stream。 你应该解压缩它

 WebRequest request = HttpWebRequest.Create(@"http://members.tsetmc.com/tsev2/excel/MarketWatchPlus.aspx?d=0"); using (WebResponse response = request.GetResponse()) { Stream responseStream = response.GetResponseStream(); using(var fs = File.Create("MarketWatchPlus-1394.4.24.xlsx")) { var zipStream = new System.IO.Compression.GZipStream(responseStream, System.IO.Compression.CompressionMode.Decompress,true); zipStream.CopyTo(fs); } } 

信用EZI的好答案。 只是抛出这个作为替代。 HttpWebRequest确实有自动解压的function。

 HttpWebRequest request = WebRequest.Create(@"http://members.tsetmc.com/tsev2/excel/MarketWatchPlus.aspx?d=0") as HttpWebRequest; request.AutomaticDecompression = DecompressionMethods.GZip; using (WebResponse response = request.GetResponse()) { using (Stream fs = File.Create("excelFile.xlsx")) { response.GetResponseStream().CopyTo(fs); } }