2009-11-08 5 views
2

WebRequest 및 WebResponse 객체에 대해 알고 있습니다. 문제는 웹 페이지의 소스 코드를 실제로 얻고 싶지 않다는 것입니다. 링크가 있는지 여부 만 확인하고 싶습니다. 것은 GetResponse 메서드를 사용하면 사이트의 전체 소스 코드를 가져옵니다.C#을 사용하여 웹 페이지 소스 코드를 얻는 방법

많은 링크가있는 깨진 링크 검사기가 생성됩니다. 그들 모두를 확인하는 데는 꽤 시간이 걸립니다. 웹 링크에서 최소 정보를 얻는 방법이 있다면? 링크가 유효한지 또는 깨 졌는지 (전체 소스 코드가 아님) 확인할 수있는 충분한 정보.

답변 (ASYNCHRONOUS TRANSFER를 사용하여 BESIDES) 크게 감사하겠습니다!

답변

4
WebRequest request = HttpWebRequest.Create("http://www.foo.com/"); 
request.Method = "HEAD"; // Just get the document headers, not the data. 

HEAD는 대신 파일 내용을지고, 우리는 단지 헤더를 얻을 GET 유사하다.

+0

고마워. 너희 둘다 ... 너희들이 빠르다. 코드 예 –

+0

+1에 대한 Thnx는이 답변이 내 것보다 낮은 담당자라는 이유가 없습니다. – SingleNegationElimination

4

링크 존재 여부를 확인하는 표준 방법은 HEAD 요청을 사용하는 것으로 원격 서버가 요청 된 개체의 헤더를 보내지 만 개체 자체는 보내지 않도록합니다. 서버에없는 개체를 요청한 경우 서버는 정상적인 404 응답을 제공하지만 존재하는 경우 헤더 뒤에 200 응답 및 데이터가 표시되지 않습니다. 이렇게하면 흥미롭지 않은 데이터가 거의 없어진다.

+0

나는 C#에서 그렇게하는 법을 모르지만 정상적인'GET' 요청처럼 쉽다는 것은 긍정적이다. – SingleNegationElimination

+0

도움이 될 것입니다. http://www.eggheadcafe.com/tutorials/aspnet/2c13cafc-be1c-4dd8-9129-f82f59991517/the-lowly-http-head-reque.aspx –

+0

두 Dudes ... 고맙다 너희들은 빠르다. –

관련 문제