Web浏览器通过窗口电话中的会话cookie进行导航

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

问题1 :在webBrowser中,我无法在网站上执行任何操作。 在正常的 webBrowser中,成功登录后我可以做任何动作,比如去活动论坛..但我面对的是我无法导航到活动论坛或任何论坛。

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

令我困惑的是, Webrowser.NavigateTostring方法是一种在互联网上对网站进行异步操作的方法吗? 我做错了什么? 或者我在寻找错误的方向?

任何帮助,将不胜感激。 谢谢。

这种方式会遇到这些问题,就好像使用WebBrowser.NavigateToString加载HTML或从独立存储加载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. // (eg 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, eg: 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); 

这样,您的Web浏览器将被正确初始化,您的cookie,图像,脚本和CSS都应该可以正常工作。

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