在模拟网站登陆时,连续几次密码输入错误,便出现假死。调试发现是在
httpWebRequest.GetRequestStream()
卡住了。再认真调过发现,大多是连续请求的第三次出现“问题”。
GG 后,前人说 request 要及时关闭。
所以关键在在每次请求后及时地。
httpWebRequest.Abort();
或
httpWebRequest.Close();
我的代码片段:
byte[] outBytes = null;
using (Stream stream = httpWebRequest.GetRequestStream())
{
stream.Write(byteRequest, 0, byteRequest.Length);
stream.Close();
webResponse = (HttpWebResponse)httpWebRequest.GetResponse();
header = webResponse.Headers.ToString();
getStream = webResponse.GetResponseStream();
contentLength = webResponse.ContentLength;
if (contentLength >= 0)
{
outBytes = new byte[contentLength];
outBytes = ReadFully(getStream);
getStream.Close();
}
else
{
}
}
httpWebRequest.Abort();
return outBytes;