C# 2008 SP1सी # ऑटो का पता लगाने के प्रॉक्सी सेटिंग्स
मैं अगर एक प्रॉक्सी "इंटरनेट विकल्प" के तहत स्थापित किया गया है पता लगाने के लिए कोड का उपयोग कर रहा हूँ। यदि प्रॉक्सी है तो मैं इसे अपने वेब क्लाइंट में सेट कर दूंगा।
तो मैं सिर्फ यह जांच रहा हूं कि प्रॉक्सी का पता मौजूद है या नहीं। यदि नहीं है, तो वेब क्लाइंट में सेट करने के लिए कोई प्रॉक्सी नहीं है।
इस ऐसा करने के लिए सही तरीका है:
किसी भी सलाह के लिए बहुत धन्यवाद,
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
मुझे एक ही समस्या है। मैं इसके बजाय वेब प्रॉक्सी के यूआरआई प्राप्त करने में कामयाब रहा: ** उरी uriProxy = WebRequest.DefaultWebProxy.GetProxy (नया उरी ("http: // someserver.com")); ** – Libor