주어진 호스트가 HTTP 웹 요청에 응답하는지 확인해야합니다. 그래서 내가해야 할 일은 HttpWebRequest.Create (someURI)이며 응답을 확인하는 것입니다.HttpWebRequest.Create 및 방화벽
HttpWebRequest webRequest = (HttpWebRequest)HttpWebRequest.Create(targetUri);
TimeSpan timeOut = TimeSpan.FromSeconds(timeOutInSeconds);
webRequest.Timeout = (int)timeOut.TotalMilliseconds;
webRequest.Proxy = proxy;
webRequest.AllowAutoRedirect = false; // get extra information with this turned off, but doesn't affect the problem
response = webRequest.GetResponse() as HttpWebResponse;
음, 떠오른다 문제는 someURI 우리의 방화벽에 의해 차단되는 경우 (예를 들어 차단 "gibber.com"), 나는 다시 유효한 HttpWebResponse 클래스를 얻을, 그것을 던져하지 않습니다이다 ResponseURI 속성은 실제 서버가 응답하더라도 차단 된 URI ("gibber.com")로 설정됩니다.
HTTP 헤더 내에 위치 키가 있으며 그 값은 로컬 서버의 IP입니다. 하지만 요청이 실제로 반송되면 해결할 텍스트를 구문 분석하고 싶지 않습니다. 이 작업을 수행하는 올바른 방법은 무엇입니까? response.ResponseUri 지정된 호스트 또는 방화벽에 해당하는 경우
감사
왜 텍스트를 구문 분석하지 않으시겠습니까? –
텍스트 파싱은 쉽지만 매우 강력하지는 않습니다. 단지 n 개의 헤더를 추출하고 그 중 하나에는 서버의 IP가 포함됩니다. 차단 된 URL에 대한 위치 헤더가 항상 존재한다는 것을 알았다면 그 URL은 항상 서버/게이트웨이의 주소가됩니다. 그러나 나는 그것을 모른다. – Mijin