public void SetProxy(CFProxySettings proxySettings) { if (proxySettings == null) { throw new ArgumentNullException("proxySettings"); } SetProperty(_Proxy, proxySettings.Dictionary); }
public WebProxy GetWebProxy() { CFProxySettings systemProxySettings = CFNetwork.GetSystemProxySettings(); string proxyHost = systemProxySettings.HTTPProxy; int proxyPort = systemProxySettings.HTTPPort; if (!string.IsNullOrWhiteSpace(proxyHost) && proxyPort != 0) { return(new WebProxy(proxyHost, proxyPort)); } return(null); }
public static CFProxy[] GetProxiesForUri (Uri uri, CFProxySettings proxySettings) { if (uri == null) throw new ArgumentNullException ("uri"); NSUrl url = NSUrl.FromString (uri.AbsoluteUri); if (url == null) return null; CFProxy[] proxies = GetProxiesForURL (url, proxySettings); url.Dispose (); return proxies; }
public static CFProxy[] GetProxiesForURL (NSUrl url, CFProxySettings proxySettings) { if (url == null || (url.Handle == IntPtr.Zero)) throw new ArgumentNullException ("url"); if (proxySettings == null) proxySettings = GetSystemProxySettings (); NSArray array = CopyProxiesForURL (url, proxySettings.Dictionary); if (array == null) return null; NSDictionary[] dictionaries = NSArray.ArrayFromHandle<NSDictionary> (array.Handle); array.Dispose (); if (dictionaries == null) return null; CFProxy[] proxies = new CFProxy [dictionaries.Length]; for (int i = 0; i < dictionaries.Length; i++) proxies[i] = new CFProxy (dictionaries[i]); return proxies; }
public Uri GetProxy(Uri targetUri) { NetworkCredential credentials = null; Uri proxy = null; if (targetUri == null) { throw new ArgumentNullException("targetUri"); } try { CFProxySettings settings = CFNetwork.GetSystemProxySettings(); CFProxy[] proxies = CFNetwork.GetProxiesForUri(targetUri, settings); if (proxies != null) { for (int i = 0; i < proxies.Length && proxy == null; i++) { switch (proxies[i].ProxyType) { case CFProxyType.AutoConfigurationJavaScript: proxy = GetProxyUriFromScript(proxies[i].AutoConfigurationJavaScript, targetUri, out credentials); break; case CFProxyType.AutoConfigurationUrl: proxy = ExecuteProxyAutoConfigurationURL(proxies[i].AutoConfigurationUrl, targetUri, out credentials); break; case CFProxyType.HTTPS: case CFProxyType.HTTP: case CFProxyType.FTP: // create a Uri based on the hostname/port/etc info proxy = GetProxyUri(proxies[i], out credentials); break; case CFProxyType.SOCKS: // unsupported proxy type, try the next one break; case CFProxyType.None: // no proxy should be used proxy = targetUri; break; } } if (proxy == null) { // no supported proxies for this Uri, fall back to trying to connect to targetUri directly proxy = targetUri; } } else { proxy = targetUri; } } catch { // ignore errors while retrieving proxy data proxy = targetUri; } if (!userSpecified) { this.credentials = credentials; } return(proxy); }
public static CFProxy[] GetProxiesForURL (CFUrl url, CFProxySettings proxySettings) { if (url == null || url.Handle == IntPtr.Zero) throw new ArgumentNullException ("url"); if (proxySettings == null) proxySettings = GetSystemProxySettings (); CFArray array = CopyProxiesForURL (url, proxySettings.Dictionary); if (array == null) return null; CFProxy[] proxies = new CFProxy [array.Count]; for (int i = 0; i < proxies.Length; i++) { CFDictionary dict = new CFDictionary (array[i], false); proxies[i] = new CFProxy (dict); } array.Dispose (); return proxies; }
public static CFProxy[] GetProxiesForUri(Uri uri, CFProxySettings proxySettings) { if (uri == null) throw new ArgumentNullException ("uri"); using (NSUrl url = NSUrl.FromString (uri.AbsoluteUri)) return GetProxiesForURL (url, proxySettings); }