开发一个Form客户端,远程自动登陆到网站,但发现程序运行后,第一次可以登陆成功,但当再次登陆时发现在sw = loginRequest.GetRequestStream();语句发生错误,错误信息是WebException“操作已超时”,现将代码截取如下,请高手解决我这个难题。
string uriString = "http://****/member/member_login.asp?urlto=";
string strRef = "http://****/member/member_login.asp?urlto=";
string strPostData = "MbCode=*****&Submit=+%B5%C7+%C2%BC+&urlto="; StreamReader sr = null;
string resultHtml = "";
string strName = "";
string strValue = "";
string strSubmit = "";
HttpWebResponse loginResponse;
System.IO.Stream sw=null;
string strPos = "";
int i = 0;
int iPosX = 0;
int iPosY = 0;
int iQueryNum = 0;
byte[] b; HttpWebRequest loginRequest = null;
loginRequest = CreateRequest(uriString,false,"",strRef,"");  //获取 Cookie
loginResponse = (HttpWebResponse)loginRequest.GetResponse();
string strSetCookie = loginResponse.Headers["Set-Cookie"];
if (strSetCookie.Length <= 0)
{
MessageBox.Show("未获得登陆Cookie!");
return;
}
strSetCookie = strSetCookie.Substring(0,strSetCookie.IndexOf(";")); uriString = "http://****/member/login.asp"; //用户登陆
strRef = "http://****/member/member_login.asp?urlto=";
loginRequest = (HttpWebRequest)WebRequest.Create(uriString);
loginRequest.Method = "POST";
loginRequest.ContentType = "application/x-www-form-urlencoded";
loginRequest.Referer = strRef;
loginRequest.KeepAlive = true;
loginRequest.Headers.Add("Cookie",strSetCookie);
loginRequest.Headers.Add("Domain","****");
b =new ASCIIEncoding().GetBytes(strPostData);
loginRequest.ContentLength = b.Length;
sw = loginRequest.GetRequestStream();
sw.Write(b,0,b.Length);
if (sw != null) 
sw.Close();
loginResponse = (HttpWebResponse)loginRequest.GetResponse();
sr = new StreamReader(loginResponse.GetResponseStream(),Encoding.Default);
resultHtml = sr.ReadToEnd();