Quiero que mi programa Java use la configuración del proxy del sistema. En consecuencia, utilicé el código que se encuentra en muchos lugares, como this answer, para establecer java.net.useSystemProxies
en verdadero y llamo al ProxySelector.getDefault().select(...)
para descubrir el proxy para el host particular que quiero alcanzar. Esto funciona bien cuando configuro un único servidor proxy explícito en Propiedades de Internet. Pero si configuré "Usar script de configuración automática", siempre devuelve el "proxy" DIRECTO.¿ProxySelector de Java no funciona con scripts de configuración automática de proxy?
Sé que el script funciona, ya que mi navegador puede acceder a los hosts para los que devuelve un servidor proxy, y sin el conjunto de scripts, no puede. Incluso he intentado simplificar el guión a sus elementos más esenciales:
function FindProxyForURL(url, host)
{
return "PROXY my.proxy.mydomain:3128";
}
y funciona en mi navegador, pero todavía ProxySelector.getDefault().select(...)
devuelve sólo DIRECTO.
¿Echo de menos algo? (Esto es en Java 1.6 & Windows 7, en caso de que importe.)
Gracias por el consejo. Buscar en Google para "selector de proxy de Java" no encuentra esta biblioteca, a menos que sea lo suficientemente agudo como para darse cuenta de que algunos de los fragmentos de código que pasan son parte de una biblioteca útil. Es una pena que Java ya no lo haga por sí mismo, ya que tiene la estructura ProxySelector y sabe cómo encontrar un proxy fijo ordinario. – vanmelle
Por cierto, las instrucciones son un poco engañosas, ya que la configuración "predeterminada" es inútil: utiliza la estrategia "leer las propiedades del sistema Java", que es lo que obtendría sin esta biblioteca en la primera lugar. Lo que funcionó para mí fue ProxySearch proxySearch = new ProxySearch(); proxySearch.addStrategy (Strategy.OS_DEFAULT); myProxySelector = proxySearch.getProxySelector(); – vanmelle