模拟登陆www.xiaonei.com
登陆页面HTML提交表单部分代码是这样的:
<h3>用户登录:</h3>
<form method="post" id="loginForm" action="/Login.do" onsubmit="getEl('email').value=Trim(getEl('email').value);" focus="email">
<p class="top">
<label for="email">登录邮箱:</label>
<input type="text" name="email" class="inputtext" value="[email protected]" id="email" tabindex="1" />
</p>
<p>
<label for="password">密码:</label>
<input type="password" id="password" name="password" class="inputtext" tabindex="2" />
</p>
<p>
<label for="autoLogin" class="labelCheckbox"><input type="checkbox" name="autoLogin" id="autoLogin" value="true" tabindex="3" />下次自动登录</label>
</p>
<p>
<input type="hidden" name="origURL" value="http://www.xiaonei.com/SysHome.do" />
<input type="submit" id="login" name="submit" class="subbutton" value="登录" tabindex="4" onclick="setLoginEmail();" />
<a href="http://xiaonei.com/GetPasswd.do">找回密码</a>
</p>
</form>
---------------------------------------下面是我写的程序
//提交表单,获取返回的HTML
private string PostData(string FormUrl, string FormData, string Method)
{
Control.CheckForIllegalCrossThreadCalls = false;
string ResponseHtml = null;
CookieContainer myCookie = new CookieContainer();
ASCIIEncoding myEncoding = new ASCIIEncoding();
byte[] Data = myEncoding.GetBytes(FormData);
try
{
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(FormUrl);
myRequest.Method = Method;
myRequest.ContentType = "application/x-www-form-urlencoded";
myRequest.ContentLength = Data.Length;
myRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Foxy/1; Foxy/1; .NET CLR 1.1.4322; InfoPath.2; .NET CLR 2.0.50727)";//模拟一个UserAgent
Stream outStream = myRequest.GetRequestStream();
outStream.Write(Data, 0, Data.Length);//发送请求
outStream.Close();
myRequest.CookieContainer = myCookie;//Cookie绑定
HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
Stream inStream = myResponse.GetResponseStream();
myCookie.Add(myResponse.Cookies);//添加Cookie
ResponseHtml = (new StreamReader(inStream, Encoding.UTF8)).ReadToEnd();
}
catch (Exception e)
{ //错误提示
AgentLog.AppendText("提交表单至" + FormUrl + "出错:" + e.Message + "\n");
}
return ResponseHtml;
}
string HTML = PostData("http://www.xiaonei.com/Login.do", "[email protected]&password=123456&origURL=http%3A%2F%2Fwww.xiaonei.com%2FSysHome.do&sumit=%E7%99%BB%E9%99%86", "POST");
MessageBox.Show(HTML);
总是提交失败,我要提交成功并且返回HTML怎么改,高手帮忙看下,谢谢了
登陆页面HTML提交表单部分代码是这样的:
<h3>用户登录:</h3>
<form method="post" id="loginForm" action="/Login.do" onsubmit="getEl('email').value=Trim(getEl('email').value);" focus="email">
<p class="top">
<label for="email">登录邮箱:</label>
<input type="text" name="email" class="inputtext" value="[email protected]" id="email" tabindex="1" />
</p>
<p>
<label for="password">密码:</label>
<input type="password" id="password" name="password" class="inputtext" tabindex="2" />
</p>
<p>
<label for="autoLogin" class="labelCheckbox"><input type="checkbox" name="autoLogin" id="autoLogin" value="true" tabindex="3" />下次自动登录</label>
</p>
<p>
<input type="hidden" name="origURL" value="http://www.xiaonei.com/SysHome.do" />
<input type="submit" id="login" name="submit" class="subbutton" value="登录" tabindex="4" onclick="setLoginEmail();" />
<a href="http://xiaonei.com/GetPasswd.do">找回密码</a>
</p>
</form>
---------------------------------------下面是我写的程序
//提交表单,获取返回的HTML
private string PostData(string FormUrl, string FormData, string Method)
{
Control.CheckForIllegalCrossThreadCalls = false;
string ResponseHtml = null;
CookieContainer myCookie = new CookieContainer();
ASCIIEncoding myEncoding = new ASCIIEncoding();
byte[] Data = myEncoding.GetBytes(FormData);
try
{
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(FormUrl);
myRequest.Method = Method;
myRequest.ContentType = "application/x-www-form-urlencoded";
myRequest.ContentLength = Data.Length;
myRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Foxy/1; Foxy/1; .NET CLR 1.1.4322; InfoPath.2; .NET CLR 2.0.50727)";//模拟一个UserAgent
Stream outStream = myRequest.GetRequestStream();
outStream.Write(Data, 0, Data.Length);//发送请求
outStream.Close();
myRequest.CookieContainer = myCookie;//Cookie绑定
HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
Stream inStream = myResponse.GetResponseStream();
myCookie.Add(myResponse.Cookies);//添加Cookie
ResponseHtml = (new StreamReader(inStream, Encoding.UTF8)).ReadToEnd();
}
catch (Exception e)
{ //错误提示
AgentLog.AppendText("提交表单至" + FormUrl + "出错:" + e.Message + "\n");
}
return ResponseHtml;
}
string HTML = PostData("http://www.xiaonei.com/Login.do", "[email protected]&password=123456&origURL=http%3A%2F%2Fwww.xiaonei.com%2FSysHome.do&sumit=%E7%99%BB%E9%99%86", "POST");
MessageBox.Show(HTML);
总是提交失败,我要提交成功并且返回HTML怎么改,高手帮忙看下,谢谢了
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货