Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从网站下载文件_C#_.net_Httpwebrequest_Console Application - Fatal编程技术网

C# 从网站下载文件

C# 从网站下载文件,c#,.net,httpwebrequest,console-application,C#,.net,Httpwebrequest,Console Application,我必须从网站上下载一个文件。我完成了认证部分。对于文件下载,我没有类似http://whatever.com/file.xlsx 我有这样一个url: http://whatever.com?b_action=cognosViewer&ui.action=view&ui.object=defaultOutput(CAMID(%22eBO%3au%3a11842%22)%2ffolder%5b%40name%3d%27My%20Folders%27%5d%2freport%5b%4

我必须从网站上下载一个文件。我完成了认证部分。对于文件下载,我没有类似
http://whatever.com/file.xlsx

我有这样一个url:

http://whatever.com?b_action=cognosViewer&ui.action=view&ui.object=defaultOutput(CAMID(%22eBO%3au%3a11842%22)%2ffolder%5b%40name%3d%27My%20Folders%27%5d%2freport%5b%40name%3d%27AppointmentFacility%27%5d)&ui.name=AppointmentFacility&ui.format=spreadsheetML
这是我用来下载文件的代码

public void downloadFile(string url, string fileName)
{
    // Create a request using a URL that can receive a post. 
    request = (HttpWebRequest)HttpWebRequest.Create(url);
    request.CookieContainer = cookieContainer;
    // Set the Method property of the request to GET.
    request.Method = "GET";
    // Get the response.
    using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
    {
        using (Stream responseStream = response.GetResponseStream())
        {
            using (StreamReader reader = new StreamReader(responseStream))
            {
                using (StreamWriter writer = new StreamWriter(fileName, false))
                {
                    writer.Write(reader.ReadToEnd());
                    writer.Flush();
                    writer.Close();
                }
            }
            responseStream.Close();
        }
        response.Close();
    }
}
但下载的文件仅包含:

您的报告已准备就绪,稍后将下载到Web浏览器

如果我在chrome中粘贴链接,它会显示一个带有以下内容的网页:你的报告。。。。然后开始下载

非常感谢你的帮助

更新: 我做了Chrome crtl+shift+i->网络

报告的url为: whatever.com/p2pd/servlet/dispatch/gd/cafs3c000054faaaccbugifftwbt-vZG2RFR7xOa6-wlAebBE523zHThH-tlqz0TrwhgYlE_h4siaaaaaaaaaaaaaaalmodflxdnfq8svynpxnyq-wrqqt9a2jlcancaz0q-Kt8s*knpgtcrv0gqagdkw6yoaaa_/

如果我登录ie并粘贴url,就会显示防火墙错误。。 正在查看会话信息以查看它,它将它们放在链接中,而它没有

以下是heaeder信息:

GET/p2pd/servlet/dispatch/gd/CAFS3C0000054FAAACCBUGIFFTWBT-vZG2RFR7xOa6-wlAebBE523zHThH-tlqz0TrwhgYlE_H4SIAAAAAAAAAAAAAAAAAAAALMODFLXDNFQ8SvynpxNYQ-WRQQT9A2JLPCNCA00Q-Kt8s*KNPGTCRRV0GQAGDKW6YOAAž/HTTP/1.1

主持人:随便吧

连接:保持活力

用户代理:Mozilla/5.0(Windows NT 6.1;WOW64)AppleWebKit/537.4(KHTML,如Gecko)Chrome/22.0.1229.94 Safari/537.4

接受:text/html、application/xhtml+xml、application/xml;q=0.9,/;q=0.8

推荐人:

接受编码:gzip、deflate、sdch

接受语言:en-US,en;q=0.8

接受字符集:ISO-8859-1,utf-8;q=0.7,*;q=0.3


Cookie:cam_passport=101:1212028e-a300-b0b0-9a59-6b86b56842dd:2388506829;cea ssa=假;usersessionid=AQGAAAAZQGUGUAAADGMGQRKOEDFHCGFAAACBUGIFFTWBT/vZG2RFR7xOa6/WLFAAAHIMT47WEMBIBXLYTAD0JUXNELN;CRN=listViewSeparator%3Dnone%26显示模式%3Dlist%26时区ID%3DCST%26格式%3DHTML%26自动更新%3D30%26列页面%3D3%26产品区域设置%3Den%26使用可访问性功能%3Dfalse%26显示欢迎页面%3Dfalse%26显示选项摘要%3Dfalse%26显示隐藏对象%3Dfalse%26内容区域设置%3Den%26皮肤%3Dcorporate%26线条页面%3D15%26;用户能力=7c6d%3B6f%3BF071EFA%26ARQAAAGBOCBX08G7F72RTKRUE8TMUV8JQBBKQOE98NKAPC1MU7HFX2KWSKB;caf=CAFW000000B0Q0FGQTNJMDAWMDAWM2FGQUFBQUNCDWDJRmZUD2J0LXZARZJSRLI3EE9HNI13BFRTOGJUC0PHALZQSW1MSWZ0VHG3EMHKKNPMOF8ZNZU2MTJ8TAXOJEYMTIWMJHLLWEZMDATYJBIMC05YTZYNdZDOYMZGNTA2ODI5;CCU SEU SECUC SECUC SECUC SECUC SECUC SECUC SECUC SECUC SECUC SECUC SECUC SECUC SECUC SECUC SECUC SECUC SECUC SECUC SECUC SECUC SECUC SECUC SECUC SECUC SECUC SECUC SECUC SECUC SECUC SECUC SECUC SEU SEC SEC SEU SEC SEC SEC SEC SEC SEC SEC SEC SEC SEC SEC SEC SEC SEC SEC SEC SEC SEC SEC SEC SES s s s s s s s s SE服务:NaS s s s s s s s s s s s s s s s s s s s s SE服务:纳纳纳:NaS s SES s SES s s s s SES s s s s s s s s s s s s s s s SES s SES s s s s s s s s s s s s s SE服务:纳纳纳纳F144A433887C1 | e|u mroot:My*20文件夹| mrootid:iD973C48427A94A9AAFB17F9016C8A62A | e|u mrootpath:CAMID(*22eBO*3au*3a11842*22)*2Folder*5b*40name*3d*27My*20Folders*27*5d | e|用户:FirstName*20LastName | cl:en | dcid:i9E956E6B64DA4217A97F144A433887C1 |显示登录:假| uig:|用户界面:|写:真| eom:0 | pp:2388506829 |缓存戳:2012-11-06T07:46:19;ARAHHC-eBO=ARAHHC-Arka-eBO2

您可以使用firebug并查看从浏览器发出的请求。请注意,您认为创建报表的页面实际上正在生成对报表文件本身的第二个请求。

您需要访问文件本身的url,您的url似乎只是重定向到该位置。您是否返回了一个
100-Continue
?@AMember,它似乎是一个报表,因此,它很可能被生成。请查看响应的标题。我猜那里有一个重定向。在Chrome中,打开开发者工具窗口并观看网络部分,它将显示所有GET和POST,这样您就可以确切地看到文件的位置/浏览器如何重定向到它。