我正在尝试使用webbrowser class下载文件。我可以使用webbrowser登录并进一步导航。

但是该文件位于使用javascript的网站上。

我尝试使用HttpWebRequest(fileurl)使用来自Webbrowser的cookie来获取文件。

登录后下载文件的代码如下。

string myUri = @"url_of_file";   
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(myUri);   
request.CookieContainer = new CookieContainer();
foreach (string cookie in webBrowser1.Document.Cookie.Split(';'))
{
    string name = cookie.Split('=')[0];
    string value = cookie.Substring(name.Length + 1);
    string path1 = "/";
    string domain = ".abcde.com"; //change to your domain name

    request.CookieContainer.Add(new Cookie(name.Trim(), value.Trim(), path1, domain));
}

WebResponse res = request.GetResponse();       

StreamReader sReader = new StreamReader(res.GetResponseStream());
StreamWriter sWriter = new StreamWriter(@"D:\file.csv");

while (sReader.Peek() >= 0)
sWriter.WriteLine(sReader.ReadLine());

sWriter.Close();

但是,响应流没有文件,而是在html正文中具有“ url_of_file”。如下所示。

<html><head></head>
<body onload="this.location.href='/Marketinfo/SubViewSubscriptionFile?product_code=DOL_INT&amp;file_id=460916&amp;subscription_id=318342&amp;loadnow=true'">
</body></html>          

请有人指出这是什么问题

===============>>#1 票数:0

因此,下一步是通过使用现有的cookie加上服务器期望的所有HTTP标头来欺骗服务器。
如果要在请求和响应中全面了解背景,请打开Chrome浏览器,按Ctrl + Shift + I打开开发人员工具,选择“网络”标签,然后以一个用户的身份从头开始重复该过程。 通过单击“名称”列上的文件,您将获得请求和响应的所有相关信息。 好处是您将拥有完全欺骗服务器所需的一切,甚至不需要使用Web浏览器控件。

  ask by Radha translate from so

未解决问题?本站智能推荐:

1回复

登录并通过http下载xml文件?

需要从以下网址登录并下载xml文件: http://www.radionyhetene.net/download/nyheter/mp3/nyheter.xml 我已经知道如何使用WebClient和HttpWebRequest获取和发布数据。但是对于上面的url,我根本无法理解该怎
2回复

C#https登录和下载文件

我已成功连接到登录页面,但是,我不确定如何登录并获取登录后面的文件。 下面是我用来连接的代码。 我很肯定下载不起作用,我确定String postData不执行它的意图。 以下是网站登录的代码 我想下载的文件是通过这个链接https://app/template/simp
2回复

如何自动登录此网页

http://www.conquerclub.com/game.php?game=13025037 请问有谁知道如何以编程方式登录到这个地址,然后将所有页面的html作为字符串返回使用类似HttpWebRequest / HttpWebResponse的内容。 用户名 - “test
5回复

以编程方式自动执行Web登录

我正在尝试创建一个C#Winforms应用程序,该应用程序将自动将我登录到站点并下载数据。 具体来说,我想让我的应用程序自动登录到我的网上银行站点,登录并下载我的交易记录。 我可以通过网络浏览器登录并下载来手动执行此操作。 我正在尝试使其自动化。 我知道我可能需要使用HttpWebReq
1回复

下载超时文件

我试图从网页上下载html,但我想在10秒后放弃。 下面的代码下载文本很好,但它可能需要超过10秒。 我有超时设置,但是StreamReading需要很长时间。 在关闭连接的同时,在10秒后停止任何进一步处理的最佳方法是什么? 如果req.GetResponse()花费的时间超过10
1回复

发送Json作为正文和文件Web请求

如何发送正文和文件? 在API指南中: "Upload Requests are submitted with multiple parts: body (request) and file buffer (file)." 我知道如何仅发送Json作为正文,但是现在我需要将Json作
3回复

从网址下载.xls文件

我正在尝试从网址下载xls文件: http : //www.site.com/ff/excel/file.aspx? deven =0 我正在使用此代码,但是下载完成后,文件没有正确下载。 如何正确下载此文件?
1回复

从网站下载文件

我必须从网站下载文件。 我完成了身份验证部分。 对于文件下载,我没有指向http://whatever.com/file.xlsx类的文件的链接 我有这样的网址: 这是我用来整理文件的代码 但是下载的文件仅包含: 您的报告已准备就绪,不久后将下载到Web浏览器
1回复

文件通过visual studio下载,但不是通过.exe下载

当我尝试通过我的.exe文件从URL下载.pdf文件时出现以下错误。 服务器提交了协议违规。 Section = ResponseHeader Detail = CR必须后跟LF 但是当我尝试从visual studio调试代码时,同样会被下载。 我完全迷失了,不知道最近发
2回复

C#自动登录特殊端口的网站

我使用的网站很多,所以我正在创建一个工具,可以帮助我使用它并轻松地从中检索数据。 我处理的网站是使用JSP构建的。 我正在构建的工具将在C#下使用WPF完成。 所以我需要做的(并且不知道如何)连接到网站(HttpWebRequest或类似的东西),登录(用户名和密码以及一些其他参数通过