C# 2008 SP1C# 자동 프록시 설정 검색
"인터넷 옵션"에서 프록시가 설정되었는지 검색하려면이 코드를 사용하고 있습니다. 프록시가 있다면 내 웹 클라이언트에서 이것을 설정할 것입니다.
그래서 프록시 주소가 있는지 확인하고 있습니다. 존재하지 않으면 웹 클라이언트에 설정할 프록시가 없습니다.
이이 할 수있는 올바른 방법인가 : 어떤 조언을많은 감사를
WebProxy proxy = WebProxy.GetDefaultProxy();
if (proxy.Address.ToString() != string.Empty)
{
Console.WriteLine("Proxy URL: " + proxy.Address.ToString());
wc.Proxy = proxy;
}
====== 코드 편집 ======
[DllImport("wininet.dll", CharSet = CharSet.Auto)]
private extern static bool InternetGetConnectedState(ref InternetConnectionState_e lpdwFlags, int dwReserved);
[Flags]
enum InternetConnectionState_e : int
{
INTERNET_CONNECTION_MODEM = 0x1,
INTERNET_CONNECTION_LAN = 0x2,
INTERNET_CONNECTION_PROXY = 0x4,
INTERNET_RAS_INSTALLED = 0x10,
INTERNET_CONNECTION_OFFLINE = 0x20,
INTERNET_CONNECTION_CONFIGURED = 0x40
}
// Return true or false if connecting through a proxy server
public bool connectingThroughProxy()
{
InternetConnectionState_e flags = 0;
InternetGetConnectedState(ref flags, 0);
bool hasProxy = false;
if ((flags & InternetConnectionState_e.INTERNET_CONNECTION_PROXY) != 0)
{
hasProxy = true;
}
else
{
hasProxy = false;
}
return hasProxy;
}
이 방법이 권장되는 방법이며 다른 코드를 작성하지 않아도됩니다. – EricLaw
WebRequest.DefaultWebProxy가 WebProxyWrapper를 반환 할 때 클래스 캐스트 예외를 발생시키는 것으로 나타났습니다. 불행히도, 제 경우에는 WebProxyWrapper가 기본 WebProxy 객체에 액세스하지 못하게합니다. 디버깅하려는 코드가 실제 환경에서 프록시를 적용하지 않고 개발 환경에서 프록시를 적용하고있는 것처럼 느껴집니다. – Dan
동일한 문제가 있습니다. 난 대신 웹 프록시의 URI를 얻을 수 있었다 : ** Uri uriProxy = WebRequest.DefaultWebProxy.GetProxy (새 Uri ("http : // someserver.com")); ** – Libor