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,并将其添加到下一个请求中
您可能还需要在请求对象上设置HTTPreferer
头字段
编辑:这仍然不能让你模仿网络浏览器。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(将其写入磁盘,保存在内存中等),然后在下一个请求之前从该存储中取回。