2009-08-09 3 views
0

HttpWebRequest 클래스는 다소 무겁고 기능이 많은 것으로 보입니다.C# : 최소한의 오버 헤드로 웹 요청 (URL에서 텍스트 가져 오기)?

다른 멋진 기능을 사용하지 않고 URL의 응답을 가능한 한 빨리 그리고 낮은 오버 헤드로 가져와야합니다. 가장 낮은 오버 헤드를 가진 가장 빠른 방법은 무엇입니까?

감사합니다.

+2

WebRequest를 사용하는 것보다 .Net에서이 기능을 더 효율적으로 또는 효율적으로 수행 할 수있는 방법을 알지 못합니다. 성능 문제가 있습니까? – David

+0

프로파일 링 할 때 WebClient 인스턴스화는 전체 (상당히 큰) 컨트롤러 코드의 60 %입니다. 그래서 빠른 대안이 있는지 궁금해했습니다. 특히 제한된 기능 만 필요하기 때문에 더욱 그렇습니다. – Alex

+0

P. 거기에 없다면, 그건 너무 괜찮아요, 적어도 그때 나는 알고 : – Alex

답변

0

WebRequest를 사용하여 확인하기 위해 벤치마킹을 해본 적이 있습니까? 필요하지 않은 WebRequest의 특정 특성을 정확히 파악 했습니까? WebRequest는 URI에 HTTP 요청을하고 응답을받습니다. WebRequest 클래스의 다른 모든 기능이있을 수도 있지만, 실제로 사용하지 않으면 아무것도 존재하지 않을 것입니다. 실제로 리소스가 부족하고 WebRequest가 범인입니까?

의견에 따라 WebClient를 사용하고 있다고 말했고 이는 WebRequest를 사용하는 것보다 훨씬 더 중요하다고 말했습니다.

+0

웹 요청을 인스턴스화 할 때 컨트롤러 메서드의 나머지 코드와 비교하여 상당히 많은 시간 집중을 느꼈고 다른 개체로 변경하면서 여기에 빠른 (조기) 최적화를 수행 할 수 있는지 궁금해했습니다. 나는 대체할만한 힘이 없다고 생각한다! – Alex

1

당신은

string url = "www.example.com"; 
IPAddress[] addresses = Dns.GetHostAddresses(url); 

가 IP를 조회하려면 다음 순수한 스트림 기반 응답의 결과로, 서버에 자신의 최소화 사용자 지정 HTTP 요청을 전송하기 위해 TCP 클라이언트를 사용 할 수 있습니다. 그보다 낮은 오버 헤드가 발생하지 않습니다.

BTW; 전체 응답이 필요하지 않고 기본 정보 만 확인해야하는 경우 HTTP HEAD 요청 유형을 살펴보십시오. Wikipedia.

+1

꽤 창조적입니다 :) 아니요. 실제 응답 내용이 필요합니다. 나는 HttpWebRequest가 이미 그때 얻는 것만 큼 좋다고 생각한다. .. – Alex

관련 문제