我最近一直在研究如何使用C#从网站获取数据。我尝试使用WebBrowser对象进行导航和登录,并且工作正常,但我一遍又一遍地遇到同样的问题:当我导航到想要的页面时,我断开连接。
我尝试了几件事,例如确保只存在一个HtmlDocument,但我仍然会退出。
TLDR:在使用WebBrowser浏览网站时,如何保持从一个页面到另一个页面的登录状态? 或者有更好的选择吗?
编辑:到目前为止,我有以下代码;
currentWebBrowser = new WebBrowser();
currentWebBrowser.DocumentText = @"<head></head><body></body>";
currentWebBrowser.Url = new Uri("about:blank");
currentWebBrowser.Navigate("http://google.com");
HttpWebRequest Req = (HttpWebRequest) WebRequest.Create("http://google.com");
Req.Proxy = null;
Req.UseDefaultCredentials = true;
HttpWebResponse Res = (HttpWebResponse)Req.GetResponse();
currentWebBrowser.Document.Cookie = Res.Cookies.ToString();
我应该在哪一刻获得饼干?我的代码是否正确?
答案 0 :(得分:2)
您必须保留从登录请求返回的cookie,并在所有后续请求中重复使用这些cookie - 身份验证cookie告诉服务器您实际上已经登录。例如。请参阅here了解如何做到这一点。