[英]WebBrowser navigate via session cookie in window phone
我试图通过HttpWebRequest
通过POST方法登录网站。 一开始,我创建了一个肖像页面,让用户输入用户名和密码并访问网页。 我成功发布数据并从网站上获取HTML内容。 最后,我使用Webrowser.NavigateTostring
方法在我创建的webBrowser中显示网站。
问题1 :在webBrowser中,我无法在网站中执行任何操作。 在正常的 webBrowser中,成功登录后我可以做任何动作,比如去参加活动论坛..但我面对的是我无法导航到活动论坛或任何论坛。
问题2 :在webBrowser内部,图像不会显示例如用户图片,产品图片。 我也尝试使用IsolatedStorage
方法来显示HTML内容,但它也不起作用。
令我困惑的是, Webrowser.NavigateTostring
方法是一种在互联网上对网站进行异步操作的方法吗? 我做错了什么? 或者我在寻找错误的方向?
任何帮助,将不胜感激。 谢谢。
不幸的是,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);
这样,您的Web浏览器将被正确初始化,您的cookie,图像,脚本和CSS应该都可以正常工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.