日期:2014-05-18  浏览次数:20934 次

网页用HttpWebRequest实现自动登录后,再跳转用IE打开登录后的网页如何实现?求各位高手帮忙,救命啊
网页用HttpWebRequest实现自动登录后,再跳转用IE打开登录后的网页如何实现?求各位高手帮忙,救命啊

------解决方案--------------------
建议你直接使用.net framework提供的WebBrowser控件,采用HtmlElent实现自动登录:
有了WebBrowser类,终于不用自己手动封装SHDocVw的 AxWebBrowser这个ActiveX控件了。这个类如果仅仅作为一个和IE一模一样浏览器,那就太没意思了(还不如直接用IE呢)。那么,无论我们是想做一个“定制版IE”,还是希望利用HTML来做用户界面(指WinApp而非WebApp。许多单机软件,包括Windows的帮助支持中心,都是HTML做的),都少不了Windows Form和包含在WebBrowser中的Web页面的交互。本文将通过几个实际的例子,初步介绍一下WinForm和WebBrowser所包含的 Web页面之间的交互。

下面的代码假设你已经建立了一个Windows Form,上面有一个WebBrowser名为“webBrowser”。

Study Case 1:用WinForm的Event Handler响应Web页面的事件

现在有这样一个Windows Application,它的界面上只有一个WebBrowser,显示一个本地的HTML文件作为界面。现在的问题是,所有逻辑都可以放在HTML文件里,唯独“关闭”按钮遇到了困难——通常,Web页面是没有办法直接控制浏览器的,更不用说结束这个WinForm程序了。

但是,在.Net 2.0当中,“由Windows Form响应Web页面的事件”已经成为了现实。

在.Net 2.0中,整个HTML文档以及其包含的各个HTML元素,都和一个个HtmlDocument、HtmlElement之类的.Net对象对应。因此只要找到这个“关闭”按钮对应的HtmlElement对象,为其click事件添加Event Handler即可。
假设HTML源代码如下:
HTML code
<html>
<body>
<input type="button" id="btnClose" value="关闭" />
</body>
</html>

------解决方案--------------------
HttpWebRequest结合webbrower
CookieContainer myCookieContainer = new CookieContainer();
string cookieStr = webBrowser1.Document.Cookie;
string[] cookstr = cookieStr.Split( '; ');
foreach (string str in cookstr)
{

}
HttpWebRequest hreq=(HttpWebRequest)HttpWebRequest.Create("");
hreq.Method= "POST ";
hreq.ContentType= "application/x-www-form-urlencoded ";
hreq.CookieContainer= myCookieContainer;