2013-08-26 572 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強制瀏覽器重新加載頁面,而不是使用緩存來測試時間。