问题描述
我想通过的HttpWebRequest
登录按发表方法的网站。在开始的时候,我创建了一个纵向页面,让用户输入用户名和密码,访问网页。我成功地发布的数据,并获得在 HTML 从网站的内容。最后,我使用 Webrowser.NavigateTostring
方法,以显示在我创建了web浏览器的网站。
I am trying to login a website by POST method through HttpWebRequest
. In the beginning, i create a portrait page to let user to enter username and password and access the web page. I successfully to Post the data and get the HTML content from the website. Finally I using the Webrowser.NavigateTostring
method to display the website in the webBrowser I create.
问题1 :web浏览器里面,我不能做的网站的任何行动。在正常的web浏览器,成功后登录我可以做任何操作,例如访问活动forum..but我面对的是我无法浏览到活动论坛或任何论坛。
Problem 1: Inside the webBrowser, I can not do any action in the website. In the normal webBrowser, after successfully login I can do any action such as go to event forum..but what i face is I can't navigate to event forum or any forum.
问题2 :web浏览器里面,图像不会呈现如用户的图片,产品图片。我也尝试使用 IsolatedStorage
方法来显示在 HTML 的内容,但它也非工作。
Problem 2: Inside the webBrowser, the image will not showing eg, user picture, product picture. I also trying to use IsolatedStorage
method to show the HTML content but it also non work.
我是混淆了wheather Webrowser.NavigateTostring
法是一种将异步操作以在互联网上的网站?什么我做错了吗?还是我找错了方向?
What I confusing is wheather the Webrowser.NavigateTostring
method is a way to asynchronous operation to the website in internet? and what I doing wrong? or I looking for wrong direction?
任何帮助将是AP preciated。谢谢你。
Any help would be appreciated. Thank you.
推荐答案
此方式将这些问题遭受如果使用加载HTML WebBrowser.NavigateToString
或隔离相对链接的图像存储无,脚本或CSS会工作。此外,它不可能从的HttpWebRequest
任何cookie传递给 web浏览器
This way will suffer from these problems as if you load the HTML using WebBrowser.NavigateToString
or from Isolated Storage none of the relative links to images, scripts or CSS will work. Also it is impossible to pass any Cookies from HttpWebRequest
to the WebBrowser
要做到这一点的方法是使用的 WebBrowser控件本身做POST。还有就是
WebBrowser.Navigate
方法的。这将允许你POST数据到您的网址。
The way to do this is to use the WebBrowser
control itself to do the POST. There is a overload of the WebBrowser.Navigate
method as documented on MSDN here. That will allow you to POST data to your 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都应该工作。
That way your web browser will be properly initialized and your cookies, images, scripts and CSS should all work.
这篇关于通过在窗口电话会话cookie web浏览器导航的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!