http://www.xxx.com/login/login_index.jsp
要模拟登陆的网址。<form name="formreg" id="formreg" method="post" target="UserCenter" style="float:left;margin:0;padding:0;" onSubmit="return loginchk();"> <div class="nrikey"> <ul> <li>用户名</li> <li class="nname01"> <input name="us" id="us" type="text" class="nname" /> </li> </ul> <ul> <li>密 码</li> <li class="nname01"> <input name="_pwd" id="_pwd" type="password" class="nname" /> </li> </ul> </div> <div class="namebot"><img src="/images/index2011new03qt_19.jpg" style="cursor: pointer;" width="50" height="44" onClick="if(document.formreg.onsubmit()!=false){document.formreg.submit();setTimeout('window.location.reload()',3000);}"/></div>
</form>-----------------------------------------------------
-----------------------------------------------------
上面是要模拟的网站代码
class PostGetWebRequest
{
private string userName;
private string password;
private string submit;
private string loginUrl;
private string locationUrl;
private CookieContainer myCookieContainer;
private HttpWebRequest request;
private HttpWebResponse response;
private Stream stream;
private StreamReader streamReader;
private string src = "";
private string postData;
private string htmlUserName;
private string htmlPassword;
private string htmlSubmit; #region 类的成员 类的成员
public string UserName
{
get { return userName; }
set { userName = value; } } public string Password
{
get { return password; }
set { password = value; }
}
public string Submit
{
get { return submit; }
set { submit = value; }
}
public string LoginUrl
{
get { return loginUrl; }
set { loginUrl = value; }
}
public string LocationUrl
{
get { return locationUrl; }
set { locationUrl = value; }
}
public CookieContainer MyCookieContainer
{
set { myCookieContainer = value; }
get { return myCookieContainer; }
}
public string Src
{
get { return src; }
set { src = value; }
}
public string PostData
{
set { postData = value; }
get { return postData; }
}
public string HtmlUserName
{
get { return htmlUserName; }
set { htmlUserName = value; }
} public string HtmlPassword
{
set { htmlPassword = value; }
get { return htmlPassword; }
}
public string HtmlSubmit
{
set { htmlSubmit = value; }
get { return htmlSubmit; }
}
#endregion public string PostWebRequest()
{
request = (HttpWebRequest)WebRequest.Create(LoginUrl); MyCookieContainer = new CookieContainer();
//设置提交相关参数
PostData = HtmlUserName + "=" + userName + "&" + HtmlPassword + "=" + Password + "&" + HtmlSubmit + "=" + Submit;//这里没有考虑中文的 System.Web.HttpUtility.UrlEncode(viewState);
// PostData = "userid=GUEST&userpass=GUEST";
//这里HtmlUserName 指的是控件的name 指,UserName指的是value,其他两个同
ASCIIEncoding encoding = new ASCIIEncoding();
byte[] data = encoding.GetBytes(PostData);//post 方式的编码
request.Method = "POST";//必须为大写,不然会出错
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = data.Length; request.KeepAlive = false;
request.CookieContainer = MyCookieContainer;//把取服务器发给客户端跟session 想对应的cookie;相当于是一个容器
//提交请求
stream = request.GetRequestStream();
stream.Write(data, 0, data.Length);
stream.Close(); //接收
response = (HttpWebResponse)request.GetResponse();
streamReader = new StreamReader(response.GetResponseStream(), Encoding.UTF8); Src = streamReader.ReadToEnd();
return Src; //单看提交页面的源代码 } public string GetWebRequest()
{
request = (HttpWebRequest)WebRequest.Create(LocationUrl);
request.Method = "GET";
request.KeepAlive = false;
request.CookieContainer = MyCookieContainer; //接收返回的页面
response = (HttpWebResponse)request.GetResponse();
stream = response.GetResponseStream();
streamReader = new StreamReader(stream, Encoding.UTF8);
// stream.Close();
Src = streamReader.ReadToEnd();
return Src; }
}public void zhuaqu()
{
PostGetWebRequest postGetWebRequest = new PostGetWebRequest();// 没有验证码的网站,登录页面html格式,客户端的
postGetWebRequest.HtmlUserName = "us";
postGetWebRequest.HtmlPassword = "_pwd";
postGetWebRequest.HtmlSubmit = "formreg";
postGetWebRequest.UserName = "xxx";
postGetWebRequest.Password = "xxx";
postGetWebRequest.Submit = "formreg";
postGetWebRequest.LoginUrl = "http://www.xxx.com/login/login_index.jsp";//这里非常关键,我在这里费了好久啊,虽然登录页面是"http://××××/";但处理页面是use_go.jsp,哎,.net 网站是在本页
postGetWebRequest.LocationUrl = "http://www.xxx.com/6896502.htm";
string content1 = postGetWebRequest.PostWebRequest();//着两个方法调用是有先后顺序的
string content2 = postGetWebRequest.GetWebRequest(); // richTextBox1.Text = content1;
// richTextBox2.Text = content2;
}
登陆不了,当登陆按钮是图片,如何模拟登陆呢?要保存session,请指教?
模拟登陆,session图片按钮
要模拟登陆的网址。<form name="formreg" id="formreg" method="post" target="UserCenter" style="float:left;margin:0;padding:0;" onSubmit="return loginchk();"> <div class="nrikey"> <ul> <li>用户名</li> <li class="nname01"> <input name="us" id="us" type="text" class="nname" /> </li> </ul> <ul> <li>密 码</li> <li class="nname01"> <input name="_pwd" id="_pwd" type="password" class="nname" /> </li> </ul> </div> <div class="namebot"><img src="/images/index2011new03qt_19.jpg" style="cursor: pointer;" width="50" height="44" onClick="if(document.formreg.onsubmit()!=false){document.formreg.submit();setTimeout('window.location.reload()',3000);}"/></div>
</form>-----------------------------------------------------
-----------------------------------------------------
上面是要模拟的网站代码
class PostGetWebRequest
{
private string userName;
private string password;
private string submit;
private string loginUrl;
private string locationUrl;
private CookieContainer myCookieContainer;
private HttpWebRequest request;
private HttpWebResponse response;
private Stream stream;
private StreamReader streamReader;
private string src = "";
private string postData;
private string htmlUserName;
private string htmlPassword;
private string htmlSubmit; #region 类的成员 类的成员
public string UserName
{
get { return userName; }
set { userName = value; } } public string Password
{
get { return password; }
set { password = value; }
}
public string Submit
{
get { return submit; }
set { submit = value; }
}
public string LoginUrl
{
get { return loginUrl; }
set { loginUrl = value; }
}
public string LocationUrl
{
get { return locationUrl; }
set { locationUrl = value; }
}
public CookieContainer MyCookieContainer
{
set { myCookieContainer = value; }
get { return myCookieContainer; }
}
public string Src
{
get { return src; }
set { src = value; }
}
public string PostData
{
set { postData = value; }
get { return postData; }
}
public string HtmlUserName
{
get { return htmlUserName; }
set { htmlUserName = value; }
} public string HtmlPassword
{
set { htmlPassword = value; }
get { return htmlPassword; }
}
public string HtmlSubmit
{
set { htmlSubmit = value; }
get { return htmlSubmit; }
}
#endregion public string PostWebRequest()
{
request = (HttpWebRequest)WebRequest.Create(LoginUrl); MyCookieContainer = new CookieContainer();
//设置提交相关参数
PostData = HtmlUserName + "=" + userName + "&" + HtmlPassword + "=" + Password + "&" + HtmlSubmit + "=" + Submit;//这里没有考虑中文的 System.Web.HttpUtility.UrlEncode(viewState);
// PostData = "userid=GUEST&userpass=GUEST";
//这里HtmlUserName 指的是控件的name 指,UserName指的是value,其他两个同
ASCIIEncoding encoding = new ASCIIEncoding();
byte[] data = encoding.GetBytes(PostData);//post 方式的编码
request.Method = "POST";//必须为大写,不然会出错
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = data.Length; request.KeepAlive = false;
request.CookieContainer = MyCookieContainer;//把取服务器发给客户端跟session 想对应的cookie;相当于是一个容器
//提交请求
stream = request.GetRequestStream();
stream.Write(data, 0, data.Length);
stream.Close(); //接收
response = (HttpWebResponse)request.GetResponse();
streamReader = new StreamReader(response.GetResponseStream(), Encoding.UTF8); Src = streamReader.ReadToEnd();
return Src; //单看提交页面的源代码 } public string GetWebRequest()
{
request = (HttpWebRequest)WebRequest.Create(LocationUrl);
request.Method = "GET";
request.KeepAlive = false;
request.CookieContainer = MyCookieContainer; //接收返回的页面
response = (HttpWebResponse)request.GetResponse();
stream = response.GetResponseStream();
streamReader = new StreamReader(stream, Encoding.UTF8);
// stream.Close();
Src = streamReader.ReadToEnd();
return Src; }
}public void zhuaqu()
{
PostGetWebRequest postGetWebRequest = new PostGetWebRequest();// 没有验证码的网站,登录页面html格式,客户端的
postGetWebRequest.HtmlUserName = "us";
postGetWebRequest.HtmlPassword = "_pwd";
postGetWebRequest.HtmlSubmit = "formreg";
postGetWebRequest.UserName = "xxx";
postGetWebRequest.Password = "xxx";
postGetWebRequest.Submit = "formreg";
postGetWebRequest.LoginUrl = "http://www.xxx.com/login/login_index.jsp";//这里非常关键,我在这里费了好久啊,虽然登录页面是"http://××××/";但处理页面是use_go.jsp,哎,.net 网站是在本页
postGetWebRequest.LocationUrl = "http://www.xxx.com/6896502.htm";
string content1 = postGetWebRequest.PostWebRequest();//着两个方法调用是有先后顺序的
string content2 = postGetWebRequest.GetWebRequest(); // richTextBox1.Text = content1;
// richTextBox2.Text = content2;
}
登陆不了,当登陆按钮是图片,如何模拟登陆呢?要保存session,请指教?
模拟登陆,session图片按钮
可以用webbrowser控件,可以根据id查找控件并赋值,然后执行那个图片按钮里的脚本代码
只要保存好cookie就好,cookie是登陆状态的凭证