2013-08-26 4 views
1

내 컴퓨터에서 로컬로 호스팅되는 웹 서비스에 쿼리를 수행하는 함수를 작성하고 있습니다. 그것은 잘 작동하지만 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을 참조하십시오. 캐시를 정리할 때 요청은 애플리케이션과 마찬가지로 약 300ms가 걸립니다. 도와 줘서 고마워. – NicoRiff

답변

3

캐시가 사용 중이기 때문에 브라우저가 훨씬 빨라질 수 있습니다. 브라우저에서 페이지를 다시로드하고 캐시를 사용하여 타이밍을 테스트하지 않으려면 CTRL + F5를 누릅니다.

관련 문제