2009-12-03 4 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; 
} 

Je suis derrière un proxy et lorsque je tenteComment réparer cette UnknownHostException?

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

pour accéder à l'URL http://abc.com il jette java.net.UnknownHostException: Je:

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

dans le fichier manifeste.

Des solutions rapides?

+0

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

Répondre

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

ou

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

j'aime le code ci-dessus. –

0

Il est possible que fetch n'effectue pas les recherches DNS nécessaires. Si vous nslookup abc.com vous obtenez une redirection vers www.go.com. C'est peut-être le problème.

0

Essayez d'utiliser cela, si vous êtes derrière le proxy et pare-feu. La raison en est votre IE et FF est activé avec le paramètre proxy, mais l'émulateur n'est pas encore configuré.

  1. shell adb

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

  3. sqlite> INSERT INTO valeurs système (99, 'http_proxy', 'proxy: port');
  4. sqlite> SELECT * FROM système;

Vous devriez être en mesure de voir la dernière valeur insérée au bas de votre tableau.

Parcourir thro ce lien: Proxy which requires authentication with Android Emulator

1

Si vous exécutez votre application sur Emulator puis faire le suivantes-

1) Fermez tous les émulateur en cours d'exécution.

2) Nettoyez votre projet et fermez Eclipse.

3) Redémarrez l'éclipse.

4) Créez un nouvel émulateur et exécutez votre projet.

C'est-à-dire! travaillé pour moi !!!

+0

Merci! M'a sauvé tellement de temps. – peterthegreat

Questions connexes