110,545
社区成员
发帖
与我相关
我的任务
分享
//我的想法是:程序运行前先调用:Login登陆网站,再用GetHtmlCode提取网页里面的内容。
//可是登陆网站时,根本都无法登陆。
class MyHttp
{
internal static HTMLDocumentClass GetHtmlCode(Uri uri)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader s = new StreamReader(response.GetResponseStream(), Encoding.Default);
HTMLDocumentClass doc = new HTMLDocumentClass();
IHTMLDocument2 doc2 = (IHTMLDocument2)doc;
doc.close();
//网页的代码
string str = Encoding.Unicode.GetString(
Encoding.Convert(Encoding.Default
, Encoding.Unicode, Encoding.Default.GetBytes(s.ReadToEnd()))
);
doc2.write(str);
return doc;
}
internal static void Login(Uri uri)
{
//如果改一下方法,doc 换成WebBrowser的HTMLDocumentClass,是可以登陆网站的。
HTMLDocumentClass doc = GetHtmlCode(uri);
//填写用户名
HTMLInputElementClass username = doc.all.item("username", 0) as dynamic;
username.value = Properties.Resources.username;
//填写密码
HTMLInputElementClass password = doc.all.item("password", 0) as dynamic;
password.value = Properties.Resources.password;
HTMLInputElementClass loginsubmit = doc.all.item("loginsubmit", 0) as dynamic;、
//程序运行到这句时出现,IE弹出一个网页about:logging.php?action=login,根本都
//不是登陆的那个网站
loginsubmit.click();
}
}
CookieContainer cookie=new CookieContainer();
request.CookieContainer=cookie;