web浏览器导航通过会话cookie在窗口电话

本文关键字:cookie 窗口 电话 会话 浏览器 导航 web | 更新日期: 2023-09-27 18:10:10

我试图通过HttpWebRequest通过POST方法登录一个网站。在开始,我创建了一个肖像页面,让用户输入用户名和密码,并访问网页。我成功地发布了数据,并从网站上获得了HTML内容。最后,我使用Webrowser.NavigateTostring方法在我创建的webBrowser中显示网站。

问题1:在web浏览器中,我不能在网站上做任何操作。在正常的 web浏览器中,成功登录后我可以做任何操作,例如进入事件论坛,但我面临的是我无法导航到事件论坛或任何论坛。

问题2:在webBrowser内部,图像将不显示例如,用户图片,产品图片。我也试图使用IsolatedStorage方法来显示HTML内容,但它也不起作用。

我困惑的是Webrowser.NavigateTostring方法是否是一种异步操作的方式在互联网上的网站?我做错了什么?还是我找错方向了?

任何帮助都会很感激。谢谢你。

web浏览器导航通过会话cookie在窗口电话

不幸的是,Set-Cookie是不支持的HTTP标头之一

这种方式将遭受这些问题,如果你使用WebBrowser.NavigateToString或从隔离存储加载HTML没有一个相对链接到图像,脚本或CSS将工作。也不可能将任何cookie从HttpWebRequest传递到WebBrowser

要做到这一点的方法是使用WebBrowser控件本身来执行POST。在MSDN上有一个WebBrowser.Navigate方法的重载。这将允许您将数据POST到您的URL。
// generate your form data based on the data you got from your "portrait page" 
// and get the bytes from that.
// (e.g. write your post data to a MemoryStream as UTF8 and get its bytes)
byte[] formBytes = ...
// write HTTP headers here, including the type of data you're posting, e.g.:
string headers = "Content-Type: application/x-www-form-urlencoded" 
   + Environment.NewLine;

Uri uri = ... // where you want the POST data to be sent
this.webBrowser.Navigate(uri, formBytes, headers);

这样你的网页浏览器将被正确初始化,你的cookies,图片,脚本和CSS应该都工作。