variable restaurar modificar java_home entorno configurar java apache-commons-httpclient

java - restaurar - variables de entorno linux



Sin cambiar el código, cómo forzar a httpClient a usar proxy por variables de entorno o argumentos JVM (5)

¿Esto ayuda?

System.setProperty("https.proxyHost", proxy_host); System.setProperty("http.proxyHost", proxy_host); System.setProperty("https.proxyPort", proxy_port); System.setProperty("http.proxyPort", proxy_port);

O, por supuesto, puede pasar las mismas propiedades a través de la línea de comandos

Encontré que la configuración de http.proxyHost y http.proxyPort no sirve para httpClient. ¿Cómo obligar a httpClient a usar proxy por variables de entorno o argumentos de VM o algo así sin cambiar el código?



El cliente HTTP (v 4.5.1 para mi caso) puede usar el proxy del sistema de esta manera:

HttpClient httpClient = HttpClientBuilder.create().useSystemProperties().build(); //or HttpClient httpClient = HttpClients.createSystem();



puede forzar el proxy a HttpClient por sí mismo con el client.getHostConfiguration().setProxy(host, port) . Por lo general, creo una clase de envoltorio alrededor de HttpClient y al inicializar este proxy de configuración de clase I desde cualquier fuente (variables de env. ...).

java.net.ProxySelector.setDefault(new MyProxySelector()) en una situación en la que no se puede establecer un proxy directamente en HttpClient . Debe implementar su propia clase de ProxySelector y la selección del método hace la selección de proxy según el URI solicitado. Puede hacer url-> mapeo de proxy para configurar una dirección URI particular para el proxy requerido o devolver un proxy para todo el URI solicitado globalmente.

Como puedo ver en el código fuente de HttpClient, no hay otra manera de configurar el método setProxy solo proxy. Estoy usando commons-httpclient-3.1.