Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.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#:如何使HttpWebRequest模拟Web浏览器控件_C#_Httpwebrequest - Fatal编程技术网

C#:如何使HttpWebRequest模拟Web浏览器控件

C#:如何使HttpWebRequest模拟Web浏览器控件,c#,httpwebrequest,C#,Httpwebrequest,我过去使用过几个HttpWebRequest,但它们都被用来登录网站 我想知道如何让WebRequest模仿WebBrowser,就像在登录后,导航到新页面,可能在那里执行操作,然后转到其他页面一样 我以前对此做过一些研究,我认为这可能涉及到使用先前请求的cookie或其他东西 我的问题是(我假设)如何从上一个会话中获取cookie,然后导航到一个页面,或者如果有意义的话,如何像上次请求一样完成一个操作。HttpWebRequest具有cookies属性,HttpWebResponse具有Coo

我过去使用过几个
HttpWebRequest
,但它们都被用来登录网站

我想知道如何让
WebRequest
模仿
WebBrowser
,就像在登录后,导航到新页面,可能在那里执行操作,然后转到其他页面一样

我以前对此做过一些研究,我认为这可能涉及到使用先前请求的cookie或其他东西


我的问题是(我假设)如何从上一个会话中获取cookie,然后导航到一个页面,或者如果有意义的话,如何像上次请求一样完成一个操作。

HttpWebRequest具有cookies属性,
HttpWebResponse
具有
CookieContainer
属性

您从容器中记录cookie,并将其添加到下一个请求中

您可能还需要在请求对象上设置HTTP
referer
头字段

编辑:

这仍然不能让你模仿网络浏览器。JavaScript之类的东西无法工作/运行。而且你也不会有一个DOM来对付它。

不,它只是一个强类型的集合。。在VS中拉起对象浏览器并查看它。这很直截了当。@Boo:See@JimMischel谢谢你的链接,它很有帮助。嗯,它没用。我已经设置了第一个httpwebrequest并创建了cookie容器。这是我的第二个httpwebrequest,但我认为没有发生任何事情:httpwebrequest httpWebRequest2=(httpwebrequest)WebRequest.Create(“);httpWebRequest2.CookieContainer=CookieContainer;HttpWebResponse httpWebResponse2=(HttpWebResponse)httpWebRequest2.GetResponse();StreamReader stream2=新的StreamReader(httpWebResponse2.GetResponseStream())@user:你已经用尽了我对这个主题的知识。我过去在其他网站上使用过
CookieContainer
,而且似乎很成功。你确定Twitter正在发送cookie吗?如果你想使用上一次会话中的cookie,你需要以某种方式保留该cookie(将其写入磁盘,保存在内存中等),然后在下一个请求之前从该存储中取回。