2012-07-16 12 views
6

Ho bisogno della condizione di non impostare alcun proxy nella mia applicazione; per questo ho usato il seguente codice:Android senza proxy non funziona?

URL url = null; 

try { 
    url = new URL(uri.toURL().toString()); 
} catch (MalformedURLException e3) { 
    e3.printStackTrace(); 
} 

try { 
    //client = (HttpURLConnection) url.openConnection(java.net.Proxy.NO_PROXY); 
    Properties systemProperties = System.getProperties(); 

    systemProperties.setProperty("http.nonProxyHosts",ServerIP); 
    systemProperties.setProperty("proxySet", "false"); 
    systemProperties.setProperty("http.proxyHost",""); 
    systemProperties.setProperty("http.proxyPort",""); 
    URLConnection conn = url.openConnection(Proxy.NO_PROXY); 


    conn.connect(); 
} catch (IOException e3) { 
    e3.printStackTrace(); 
} 

Ma ho avuto irraggiungibile eccezione rete !!

Qualsiasi aiuto !!

+0

Puoi fornire maggiori dettagli sul tuo problema? Qual è lo scenario? Funziona sull'emulatore o su un dispositivo? o entrambi ? Qual è il tuo ambiente di rete? – fiddler

+0

Salve, il mio obiettivo è quello di connettermi a un server usando l'ambiente proxy e non-proxy. Sto eseguendo l'applicazione sul dispositivo Android e la connessione viene effettuata tramite wifi. – info

risposta

5

Se non si fraintende la domanda ... Si desidera connettersi al server direttamente quando si connette tramite Wi-Fi?

HttpURLConnection con =null; 
URL url = new URL("xxxxx"); 
boolean isProxy=true; 

ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); 
if(cm!=null){ 
    NetworkInfo ni = cm.getActiveNetworkInfo(); 
    if(ni!=null){ 
     if(! ni.getTypeName().equals("WIFI")){ 
      isProxy=false; 
     } 
     if(isProxy){ 
      Proxy proxy=new Proxy(java.net.Proxy.Type.HTTP,new InetSocketAddress(android.net.Proxy.getDefaultHost(),android.net.Proxy.getDefaultPort())); 
      con = (HttpURLConnection) url.openConnection(proxy); 
     }else{ 
      con = (HttpURLConnection) url.openConnection(); 
     } 
    } 
} 

p.s. Si prega di notare che il frammento di codice sopra potrebbe perdere alcuni errori di gestione. Grazie;)