无法下载文件(页面网址与下载网址相同)

时间:2016-06-06 00:54:53

标签: c# web downloading

我正在尝试使用C#下载一个zip文件(通常通过按网页上的按钮来访问/下载)。

通常选择“数据导出”,然后单击此URL上的“搜索”按钮下载文件:

http://insynsok.fi.se/SearchPage.aspx?reporttype=0&culture=en-GB&fromdate=2016-05-30&tomdate=2016-06-03

如果在网页上手动触发下载,然后从chrome或firefox的“下载”视图中复制下载网址,我会得到与上面完全相同的网址。当我在浏览器窗口中粘贴它时,我不会触发下载,而是会加载上面的页面,我必须以与第一个地方相同的方式手动触发下载。 我还尝试使用检查器的网络选项卡复制单击“搜索”按钮时触发的请求的请求标头,但该URL也与上面的URL相同。

尝试使用C#我得到相同的结果,页面本身被下载。我的代码如下:

private static void GreetUser()
{
    var message = (!hasRun ? "Hello, welcome. " : string.Empty) + "Please enter a request: ";
    Console.WriteLine(message);
    var requestText = Console.ReadLine();
    hasRun = true;
}

我的猜测是我的代码是正确的,但如何获得正确的URL才能直接下载文件?

1 个答案:

答案 0 :(得分:-2)

ASP.net在页面中插入一堆垃圾,使得这样的事情变得特别困难。 (验证令牌,表单令牌等)。

最好的办法是使用名为Mechanize的python库,或者如果你想坚持使用C#,你可以使用Selenium或C#WebBrowser。这将完全自动化访问页面(您可以呈现C#WebBrowser不可见),然后只需单击按钮以编程方式触发下载。