C# 无法下载文件(页面url与下载url相同)

C# 无法下载文件(页面url与下载url相同),c#,web,download,C#,Web,Download,我正在尝试使用C#下载一个zip文件(通常通过按网页上的按钮来访问/下载) 通常,通过选择“数据导出”,然后单击此URL处的“搜索”按钮下载文件: 如果在网页上手动触发下载,然后从chrome或firefox的“下载”视图复制下载url,我会得到与上面完全相同的url。当我将其粘贴到浏览器窗口中时,我不会触发下载,而是加载上面的页面,我必须以与第一次相同的方式手动触发下载。 我还尝试使用inspector的network选项卡复制在单击“SEARCH”按钮时触发的请求的请求头,但该URL也与上

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

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

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

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

        using (var client = new WebClient())
        {
            client.DownloadFile("http://insynsok.fi.se/SearchPage.aspx?reporttype=0&culture=sv-SE&fromdate=2016-05-30&tomdate=2016-06-03", "zipfile.zip");
        }

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

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


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

该网站可能需要一个或多个cookie以及URL。使用Fiddler2查看在您启动下载时发送到服务器的所有内容。有什么想法吗?我在请求头中找到的是“Cookie:ASP.NET_SessionId=25h5ps55ri2etdnzhmqn5w55;insynsok=ffffffffc3a01c7b45525d5f4f4f4845e45a4a423660;WT_FPC=id=3da67408-37fb-49e1-812e-98a615bc5f47:lv=1465178890938:ss=1465178590640”。我猜这意味着触发下载时发送了一些cookie信息@KeithPaynet那是饼干。您需要从包含下载按钮的页面接收名称-值对。然后在启动下载时发送相同的值。看看这个例子。