2009-12-03 22 views
5
public static final String readURL(String url)throws Throwable 
{ 
     try { 
      InputStream in = (InputStream) fetch(url); 
      byte[] bArr = readBytes(in); 
      return new String(bArr); 
     } catch (Throwable e) { 
      throw e; 
      } 
} 


public static final Object fetch(String address) throws MalformedURLException,IOException { 
    URL url = new URL(address); 
    Object content = url.getContent(); 
    return content; 
} 

Estoy detrás de un proxy y cuando intento¿Cómo arreglo esta UnknownHostException?

readURL ("http://abc.com")

acceder a la URL http://abc.com arroja java.net.UnknownHostException: tengo:

<uses-permission android:name="android.permission.INTERNET" /> 

en el archivo de manifiesto.

¿Alguna solución rápida?

+0

Dupe: http://stackoverflow.com/questions/1432961/how-do-i-make-httpurlconnection-use-a-proxy –

Respuesta

13
Proxy proxy = new Proxy(Proxy.DIRECT, 
    new InetSocketAddress(proxyHost, proxyPort)); 
url.openConnection(proxy); 

o

System.setProperty("http.proxyHost", "my.proxyhost.com"); 
System.setProperty("http.proxyPort", "1234"); 
+0

me encanta el código anterior. –

0

Es posible que fetch no realice las búsquedas DNS necesarias. Si nslookup abc.com obtiene un redireccionamiento a www.go.com. Este podría ser el problema.

0

Trate de usar esto, si usted está detrás del proxy y cortafuegos. El motivo es que su IE y FF están habilitados con la configuración proxy, pero el emulador aún no está configurado.

  1. adb shell

  2. sqlite3 /data/data/com.google.android.providers.settings/databases/settings.db

  3. sqlite> INSERT INTO valores del sistema (99, 'http_proxy', 'proxy: puerto');
  4. sqlite> SELECCIONAR * FROM sistema;

Debería poder ver el último valor insertado en la parte inferior de la tabla.

Navegar excelentes referencias en este enlace: Proxy which requires authentication with Android Emulator

1

Si está ejecutando la aplicación en el emulador luego hacer lo siguiente-

1) Cierre todas las emulador corriendo.

2) Limpie su proyecto y cierre Eclipse.

3) Comience el eclipse nuevamente.

4) Cree un nuevo emulador y ejecute su proyecto.

Eso es todo! ¡¡¡trabajó para mi!!!

+0

¡Gracias! Me ahorró mucho tiempo. – peterthegreat