C#第一次使用GetRequestStream()需要20秒

koe*_*oen 7 c#

我用C#.

我第一次在代码中使用WebRequest GetRequestStream()时,最多需要20秒.之后需要不到1秒钟.

以下是我的代码.行"this.requestStream = httpRequest.GetRequestStream()"导致延迟.

StringBuilder postData = new StringBuilder(100);
postData.Append("param=");
postData.Append("test");
byte[] dataArray = Encoding.UTF8.GetBytes(postData.ToString());

this.httpRequest = (HttpWebRequest)WebRequest.Create("http://myurl.com");

httpRequest.Method = "POST";
httpRequest.ContentType = "application/x-www-form-urlencoded";

httpRequest.ContentLength = dataArray.Length;

this.requestStream = httpRequest.GetRequestStream();

using (requestStream)
    requestStream.Write(dataArray, 0, dataArray.Length);

this.webResponse = (HttpWebResponse)httpRequest.GetResponse();

Stream responseStream = webResponse.GetResponseStream();
StreamReader responseReader = new System.IO.StreamReader(responseStream, Encoding.UTF8);
String responseString = responseReader.ReadToEnd();
Run Code Online (Sandbox Code Playgroud)

我怎么才能看出是什么原因造成的?(例如:DNS查找?服务器没有响应?)

感谢和问候,Koen

小智 11

您还可以尝试设置.Proxy = null.有时它会尝试自动检测占用时间的代理.

  • 就是这样。非常感谢!采取代理检测花了 20 秒。 (2认同)