2012-01-26 5 views
4

루프를 통해 프록시를 수행하고 테스트 중인지 확인하고 사용자 이름과 암호가 필요하지 않은지 테스트하기 위해 테스트 할 프록시 목록이 있습니다.테스트 프록시 인증이 필요한지 확인합니다.

그러나 테스트가 올바르게 작동하지 않는 것 같습니다. 예를 들어 내가 사용하는 데 필요한 사용자 이름과 암호가 필요하다고 알고있는 프록시가 하나 있지만 테스트를 거쳐야합니다. "66.60.148.11:3128"다음 프록시 인증이 필요한 예를 들어

HttpWebRequest webReq = (HttpWebRequest)System.Net.HttpWebRequest.Create("http://www.google.com"); 
webReq.Proxy = new WebProxy(proxy); 
HttpWebResponse webRes = (HttpWebResponse)webReq.GetResponse(); 
if (webRes.StatusCode != HttpStatusCode.ProxyAuthenticationRequired) 
{ 

    Stream myStream = webRes.GetResponseStream(); 
    if (myStream != null) 
    { 
     success = true; 
    } 
} 

: 여기

는 내가 가지고있는 샘플 코드입니다. 그러나 코드를 실행하면 webRes.StatusCode가 OK로 돌아오고 webRes.StatusCode! = HttpStatusCode.ProxyAuthenticationRequired 테스트를 전달합니다.

모든 아이디어 나 제안을 보내 주시면 감사하겠습니다.

감사합니다.

답변

1

나는 프록시를 통해 (말하자면) 허용하는 요청이 HTTP 표준을 따르지 않아서 407 상태 코드를 반환하지 않는다고 생각합니다. WireShark http://www.wireshark.org/과 같은 패킷 스니핑을 사용하거나 Chromes 개발자 도구 (Ctrl + Shift + I)와 같은 브라우저 디버그 도구를 사용하여 이것을 볼 수 있습니다. 또한이 경우 webRes.StatusCode의 값을보고 어떤 상태 코드가 반환되는지 확인할 수 있습니다.

관련 문제