2013-06-13 4 views
4

거의 모든 설명서를 읽었지만 아직 DefaultWebProxy()을 사용하여 IE의 기본 프록시 설정을 얻는 간단한 작동 예제를 찾을 수 없습니다.DefaultWebProxy를 사용하여 IE의 기본 프록시를 얻으십시오.

이 코드는 컴파일되고 작동하는 것처럼 보이지만 어떻게하면 프록시 URI를 문자열로 가져올 수 있습니까?

HttpWebRequest webRequest = 
    (HttpWebRequest)HttpWebRequest.Create("http://www.google.com"); 

if (WebRequest.DefaultWebProxy != null) 
{ 
    webRequest.Proxy = WebRequest.DefaultWebProxy; 
} 

편집 :

이 질문에 나는 하나 또는 여러 프록시가 다른 목적지를 설정하거나 (아마도 로컬 인트라넷 목적지에 대한) 우회 할 수 있다는 것을 발견했다 제출 이후. 그렇기 때문에 URI를 GetProxy()으로 지정해야합니다. 프록시를 가져올 대상을 알아야합니다. 인터넷 옵션에서 "자동으로 설정 검색"이 설정되면 브라우저는 로컬 도메인의 PAC 파일을 찾습니다. PAC 파일에는 지정된 대상에 대한 프록시 주소를 결정하는 Javascript 함수가 들어 있습니다.

+1

자바가 아니며 PAC 파일에 사용되는 자바 스크립트입니다. – Maxence

+0

@Maxence 감사합니다. –

답변

5

WebRequest.DefaultWebProxyIWebProxy 인터페이스를 구현합니다.

심각 하 게 ... 당신이 마이크로 소프트가 그것을 구현하는 방법이기 때문에 GetProxy에 URI를 전달해야

: 코멘트에

var uri = WebRequest.DefaultWebProxy.GetProxy(new Uri("http://www.google.com")); 

응답 : 당신은 프록시의 URI 얻을 수있는 GetProxy 방법을 사용할 수 있습니다 , 나는 이것이 일부 주소에 대해 프록시를 우회하도록 브라우저를 구성 할 수 있기 때문에 그렇게 믿습니다. 이 무시 된 주소 중 하나를 전달하면 다른 결과가 나타납니다.

+0

왜 사이트의 URL을 지정해야하는지 설명 할 수 있습니까? –

+1

또한 GetProxy는 문자열 대신 입력으로 URI 인스턴스가 필요하다고 생각합니다. –

+0

맞습니다. 오류를 수정하고 설명을 추가했습니다. – zmbq