static Uri GetProxyUriFromScript(IntPtr script, Uri targetUri)
{
CFProxy[] proxies = CFNetwork.GetProxiesForAutoConfigurationScript(script, targetUri);
if (proxies == null)
{
return(targetUri);
}
for (int i = 0; i < proxies.Length; i++)
{
switch (proxies[i].ProxyType)
{
case CFProxyType.HTTPS:
case CFProxyType.HTTP:
case CFProxyType.FTP:
// create a Uri based on the hostname/port/etc info
return(GetProxyUri(proxies[i]));
case CFProxyType.SOCKS:
default:
// unsupported proxy type, try the next one
break;
case CFProxyType.None:
// no proxy should be used
return(targetUri);
}
}
return(null);
}