c# - 通过 C# 使用间接 url 下载

标签 c# excel download stream

我有一个生成 excel 文件的间接链接。我搜索了很多,发现一些方法不能满足我的需要。链接地址没有直接引用excel文件,原因是每当请求URL时网页都会制作一个新的excel文件__刷新内容。 我使用了下面提到的不同方法。 我真正想要做的是,在不打开浏览器的情况下,我想下载 URL 的内容(这是一个 excel 文件)并将其另存为 excel 文件。 Here is the link ,点击后会直接得到一个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
}

上面的代码也是通过搜索使用的,但它没有提供我需要的东西,我使用了一些第三方dlls将流保存为excel文件,保存的文件也无法用excel打开.我也使用过 Process.Start 但它打开了浏览器。我不想打开任何浏览器。

最佳答案

它是压缩流。你应该解压它

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);
    }
}

关于c# - 通过 C# 使用间接 url 下载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31436600/

相关文章:

c# - 我可以停止 Visual Studio 自动更改表单设计器代码吗?

c# - Web 表单中的 ASP.Net 图表适用于本地系统,不适用于 Web 服务器

c# - 如何统一将游戏对象设置为精确长度

sql - ADODB/Excel 查询错误

excel - VBA:如何将不同工作表上的两个范围合并为一个,循环

java - 从 ColdFusion 服务器执行 Excel 宏

ajax - 使用 Ajax 从 Servlet 下载文件

ruby-on-rails - Rails 中的文件下载链接

javascript - 使用javascript函数从html下载音频文件

c# - 如何使用 Reactive Extensions 实现事件