byte[] postData = Encoding.ASCII.GetBytes(parameters);
System.Net.HttpWebRequest request = System.Net.WebRequest.Create(url) as System.Net.HttpWebRequest;
request.Accept = "image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*";
request.Headers.Add("Accept-Language", "zh-cn,en-us;q=0.5");
request.Headers.Add("Accept-Encoding", "gzip, deflate");
request.CookieContainer = cookieContainer;
request.ContentLength = postData.Length;
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)"; System.IO.Stream outputStream = request.GetRequestStream();
outputStream.Write(postData, 0, postData.Length);
outputStream.Close();
System.Net.HttpWebResponse response = request.GetResponse() as System.Net.HttpWebResponse; System.IO.Stream readStream = response.GetResponseStream();
string responseText = "";
try
{
if (response.ContentEncoding.ToLower().Contains("gzip"))
readStream = new GZipStream(readStream, CompressionMode.Decompress);
else if (response.ContentEncoding.ToLower().Contains("deflate"))
readStream = new DeflateStream(readStream, CompressionMode.Decompress); System.IO.StreamReader reader = new System.IO.StreamReader(readStream, Encoding);
responseText = reader.ReadToEnd();
}
finally
{
if (readStream != null) readStream.Close();
if (response != null) response.Close();
if (request != null) request.Abort();
}差不多是上面的代码,采集其它网页全部正常,但唯一有时Post一个请求时,在reader.ReadToEnd();这行会耗去20秒左右的时间,但是用IE提交请求却是正常,不到1秒,我试着把reader.ReadToEnd去掉,发现却又在readStream.Close这行会耗去20秒,百思不得其解,我也尝试了用异步,结果完全一样,没办法,求教~
System.Net.HttpWebRequest request = System.Net.WebRequest.Create(url) as System.Net.HttpWebRequest;
request.Accept = "image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*";
request.Headers.Add("Accept-Language", "zh-cn,en-us;q=0.5");
request.Headers.Add("Accept-Encoding", "gzip, deflate");
request.CookieContainer = cookieContainer;
request.ContentLength = postData.Length;
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)"; System.IO.Stream outputStream = request.GetRequestStream();
outputStream.Write(postData, 0, postData.Length);
outputStream.Close();
System.Net.HttpWebResponse response = request.GetResponse() as System.Net.HttpWebResponse; System.IO.Stream readStream = response.GetResponseStream();
string responseText = "";
try
{
if (response.ContentEncoding.ToLower().Contains("gzip"))
readStream = new GZipStream(readStream, CompressionMode.Decompress);
else if (response.ContentEncoding.ToLower().Contains("deflate"))
readStream = new DeflateStream(readStream, CompressionMode.Decompress); System.IO.StreamReader reader = new System.IO.StreamReader(readStream, Encoding);
responseText = reader.ReadToEnd();
}
finally
{
if (readStream != null) readStream.Close();
if (response != null) response.Close();
if (request != null) request.Abort();
}差不多是上面的代码,采集其它网页全部正常,但唯一有时Post一个请求时,在reader.ReadToEnd();这行会耗去20秒左右的时间,但是用IE提交请求却是正常,不到1秒,我试着把reader.ReadToEnd去掉,发现却又在readStream.Close这行会耗去20秒,百思不得其解,我也尝试了用异步,结果完全一样,没办法,求教~
WebClient wc = new WebClient();
str = wc.DownloadString(url);
有时候在reader.ReadToEnd()上面也会费很长时间