Android HttpClient no utiliza configuración de proxy del sistema

Cuando creo un objeto DefaultHttpClient e intento pegar una página web, la solicitud no se enruta a través del proxy que especificé en Configuración.

Mirando a través de los documentos de la API, no veo dondequiera que pueda especificar un proxy aunque Android tiene una clase Proxy que me permite leer la configuración del proxy del sistema.

¿Hay una manera que puedo utilizar la configuración de proxy en un HttpClient?

Tratar:

 DefaultHttpClient httpclient = new DefaultHttpClient(); HttpHost proxy = new HttpHost("someproxy", 8080); httpclient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy); 

(Eliminado de aquí )

En primer lugar, me aseguraría de que la solicitud se adhiera a las propiedades de configuración de proxy establecidas en la configuración del dispositivo Android. Puede determinar esto a través del código mirando la clase System en android.provider.Settings;

Para identificar si el usuario tenía una configuración de proxy del sistema, puede hacer lo siguiente:

  System.getProperty("http.proxyHost"); System.getProperty("http.proxyPort"); System.getProperty("https.proxyHost"); System.getProperty("https.proxyPort"); 

Si tiene una instancia de DefaultHTTPClient, puede comprobar si también tiene la configuración de proxy relevante.

  DefaultHttpClient httpclient = new DefaultHttpClient(); httpclient.getParams().getParameter(ConnRoutePNames.DEFAULT_PROXY); 

Estas son todas las maneras de 'obtener' la configuración del proxy, y los métodos 'set' se implementan de la misma manera, ya sea a través de System.setProperty o httpclient.setParams.

Espero que esto ayudó!

Estoy desarrollando la Biblioteca de Proxy de Android que intenta abstraer el acceso a la configuración de proxy para cada versión de Android. Puede obtener fácilmente los ajustes de proxy seleccionados actualmente por el usuario.

Tratar :

 System.setProperty("http.proxyHost", <your proxy host name>); System.setProperty("http.proxyPort", <your proxy port>); 

o

 DefaultHttpClient httpclient = new DefaultHttpClient(); HttpHost httpproxy = new HttpHost("<your proxy host>",<your proxy port>); httpclient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, httpproxy); 

o

 HttpHost proxy = new HttpHost("ip address",port number); DefaultHttpClient httpclient = new DefaultHttpClient(); httpclient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY,proxy); HttpPost httpost = new HttpPost(url); List<NameValuePair> nvps = new ArrayList<NameValuePair>(); nvps.add(new BasicNameValuePair("param name", param)); httpost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.ISO_8859_1)); HttpResponse response = httpclient.execute(httpost); HttpEntity entity = response.getEntity(); System.out.println("Request Handled?: " + response.getStatusLine()); InputStream in = entity.getContent(); httpclient.getConnectionManager().shutdown(); 
  • Charles SSL Proxy funciona para cromo pero no para las aplicaciones
  • No se pudieron resolver todas las dependencias para la configuración ': classpath'
  • Uso de un script de configuración de proxy automático con el emulador de Android
  • ¿Cómo enrutar todo el tráfico procedente del anclaje?
  • ¿Cómo pueden los usuarios / desarrolladores configurar la configuración de proxy de Android para las versiones 2.x?
  • ¿Hay alguna manera de crear un proxy HTTP en VPN en Android?
  • Configuración de HTTP Proxy para redes WIFI en dispositivos Android 1.xy 2.x
  • Android studio - gradle no pudo resolver las dependencias
  • Cómo capturar tráfico de aplicaciones en Android
  • ¿La configuración de proxy de Android se aplica a todas las aplicaciones del dispositivo?
  • Cómo crear un servidor http en android que un escritorio puede acceder (viceversa) usando NanoHTTPD
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.