Web Services GetResponse()在我的PC上需要500毫秒,在其他PC上需要10毫秒

ct3nt3jp  于 2023-02-09  发布在  其他
关注(0)|答案(1)|浏览(153)

我已经发送了许多http请求与周期

WebRequest request = (WebRequest)WebRequest.Create(str);

在我的计算机上,这条线大约需要500ms

WebResponse response = request.GetResponse();

在网络上的其他计算机上:10至20毫秒
如何修复这个bug?网络上的其他计算机更快地完成请求可能有什么原因?
未安装代理,请求发送到127.0.0.1:port
日志代码

String IdHTTPUt_Get(string str)
         {
            string res="";
             
DateTime dt = DateTime.Now;
             
WriteLog("begin");
           
WriteLog((DateTime.Now - dt).ToString()); dt = DateTime.Now;
           
 WebRequest request = (WebRequest)WebRequest.Create(str);
            
WriteLog((DateTime.Now - dt).ToString()); dt = DateTime.Now;
             
request.Credentials = new NetworkCredential(opt_Utor_User,opt_Utor_Password);

request.Method = "GET";
            
WriteLog((DateTime.Now - dt).ToString()); dt = DateTime.Now;
           
request.Proxy = null;
            
using (WebResponse response = request.GetResponse())
           
{
                
  WriteLog((DateTime.Now - dt).ToString()); dt = DateTime.Now;
                
  Stream receiveStream = response.GetResponseStream();
                
  WriteLog((DateTime.Now - dt).ToString()); dt = DateTime.Now;
                
  StreamReader readStream = new
 
  StreamReader(receiveStream,Encoding.UTF8);
               
  WriteLog((DateTime.Now - dt).ToString()); dt = DateTime.Now;
                
  res = readStream.ReadToEnd();
                
  WriteLog((DateTime.Now - dt).ToString()); dt = DateTime.Now;
                
  receiveStream.Close();                 
  readStream.Close();
             
}
            
WriteLog((DateTime.Now - dt).ToString()); dt = DateTime.Now;
           
return res;

  }
goqiplq2

goqiplq21#

哪条线路占用了时间-WebRequest.Create还是request.GetResponse()
你在结尾处理响应吗?它应该在using语句中:

using (WebResponse response = request.GetResponse())
{
    ...
}

连接池限制了你可以连接到任何特定主机的数量--在这种情况下,你最终会等待垃圾收集器释放一个更早的响应。这 * 可能 * 不是问题所在,但我不会惊讶地发现它是问题所在。
编辑:当然,另一种可能性是在你的机器上处理请求需要很长时间。请求在做什么?如果你从其他机器上发出同样的请求(但仍然是对你的机器)需要多长时间?

相关问题