2017-12-28 26 views
1

코드는, 그들 (가 2xx 같은, 3xx의 4XX-5XX)를 분리해서, 모든 응답 코드를 얻을 수 및 다른 목록에 넣어 아래로HTTP 응답 코드는 C#

내가 뭘하고 싶은 것은
 List<int> j = new List<int>(); 
     HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(result.SiteURL); 
     webRequest.AllowAutoRedirect = false; 
     HttpWebResponse response = (HttpWebResponse)webRequest.GetResponse(); 
     j.Add((int)response.StatusCode); 

다음과 같습니다 . 얼마나 많은 4xx 응답이 있는지 또는 200 응답이 몇 개 있는지 등의 번호가 필요하기 때문입니다. 아니면 다른 방법이 있을까요?

result.SiteURL은 응답의 URL입니다. 문제는 반환 또는 아무것도 얻지 코드의 마지막 줄입니다. 내가 여기서 무엇을 놓치고 있니?

편집 : 주된 문제는 무엇이든 나는 단지 1 개의 응답 코드 만 얻습니다. 그리고 그것은 대부분 200 : OK입니다. 그러나 youtube.com의 경우 https://tools.pingdom.com/#!/fMjhr/youtube.com에 따라 74 개의 OK (200) 응답, 1 개의 No Content (204) 응답 및 2 개의 Moved Permanently (301) 응답이 있어야합니다. 나는 그들을 어떻게 얻을 것인가?

+0

[HttpWebRequest 및 HttpWebResponse에서 상태 코드 (200, 301, 404 등) 가져 오기] (https://stackoverflow.com/questions/1330856/getting-http-status-code-number- 200-301-404-etc-from-httpwebrequest-and-ht) - 모든 ** ** 응답을 반드시 읽으십시오. – mjwills

+0

리디렉션 상태 코드는 https://stackoverflow.com/a/11618739/34092를 참조하십시오. – mjwills

+0

'ConcurrentDictionary resp = new ConcurrentDictionary ()'가 맞습니까? 이 줄에는'response.StatusCode'가 없습니다. 그것은 말합니다 : ** '응답'은 변수이지만 형식처럼 사용됩니다 ** @ mjwills – ovuncdeniz4

답변

1

pingdom으로 표시된 결과를 오해 한 것입니다.

핑덤은 브라우저 것 같은 웹 페이지를 요청 : 스타일 시트, 스크립트, 이미지 등

귀하의 코드에만로드 : 그것은 페이지하여 페이지 자체뿐만 아니라 모든 자원 참조를로드 위대한 가용성을 가지고 항상 200 OK를 반환하는 메인 HTML 페이지.

pingdom의 결과를 재현하려면 HTML 페이지를 구문 분석하고 페이지의 리소스도로드해야합니다. HTML 구문 분석은 간단한 작업 (브라우저 공급 업체는 많은 노력을 기울였습니다.)이므로 시간 가치가 있는지 다시 생각해 볼 수 있습니다.

+0

"pingdom의 결과를 재현하려면 HTML 페이지를 구문 분석하고 페이지의 리소스도로드해야합니다." 나는 프로그래밍에 익숙하지 않으므로 어떻게해야할까요? 당신이 나를 도울 수? – ovuncdeniz4

+0

초심자에게는 그다지 적합하지 않습니다. 여전히 HTML을 능숙하게 사용하고 C#에서 HTML을 구문 분석하는 방법을 배우는 것으로 시작하십시오. – Heinzi