2013-08-26 313 views
1

我正在写一个函数来对我的计算机本地托管的web服务执行查询。它工作正常,但GetResponse方法花费的时间比我期望的要多。更具体地说,当我在浏览器上执行请求时,大约需要10毫秒,而GetResponse方法与300毫秒相差甚远。WebRequest.GetResponse()花费太多时间

我在代码上做错了什么?我可以改进吗?

public static string CargarListaRutas() 
    { 
     WebRequest request = HttpWebRequest.Create("http://localhost:8080/services/rest/184108301/listaRutas/"); 
     request.Timeout = 2000; 
     WebResponse response; 
     string responseFromServer; 
     try 
     { 
      using (response = request.GetResponse()) 
      { 
       Stream dataStream = response.GetResponseStream(); 
       StreamReader reader = new StreamReader(dataStream); 
       responseFromServer = reader.ReadToEnd(); 
      } 
     } 
     catch 
     { 
      responseFromServer = String.Empty; 
     } 

     return responseFromServer; 
    } 
+4

您确定这不是因为浏览器正在使用缓存版本吗?您可以尝试CTRL + F5来强制浏览器重新加载页面,而不是使用缓存来测试时间。 – itsme86

+1

如果itsme86的评论没有帮助。这可能是由自动代理检测造成的。尝试设置request.Proxy = null。请参阅http://stackoverflow.com/a/3603413/442078 – Will

+0

itsme86,你是对的。当我清理缓存时,请求大约需要300毫秒,就像我的应用程序一样。感谢您的帮助。 – NicoRiff

回答

3

您的浏览器有可能因为使用缓存而速度更快。尝试CTRL + F5强制浏览器重新加载页面,而不是使用缓存来测试时间。