2017-07-24 4 views
0

Hallo allerseits hoffe, Sie tun gut Ich habe ein Problem mit meiner Anwendung, ich benutze unten Code für die Verbindung zu einer Adresse (wie Sie hier sehen meine lokale Adresse) Mein Problem ist, wenn ich shutdown mein wamp server oder zum beispiel, wenn meine anwendung konnte nicht verbinden zu adresse, die ich gab es vorher, meine anwendung stoppt nach einer bestimmten zeit und es gibt mir einen fehler. Ich würde gerne wissen, wie kann ich meinen Code zu ändern, wenn Anwendung konnte keine Adresse finden (aus irgendwelchen Gründen), gibt meine Anwendung eine Nachricht an den Benutzer statt Halt Stops.how kann ich damit umgehen?httpURLConnection macht meine Anwendung zu stoppen

hier ist mein Code

String json_url = "http://10.0.2.2/ss/1.php"; 
    @Override 
    protected String doInBackground(Void...voids){ 
     try{ 
      URL url = new URL(json_url); 
      HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection(); 
      httpURLConnection.connect(); 
      InputStream inputStream = httpURLConnection.getInputStream(); 
      BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream)); 
      StringBuilder stringBuilder = new StringBuilder(); 
      while((json_string=bufferedReader.readLine())!=null){ 
       stringBuilder.append(json_string+"\n"); 
      } 
      bufferedReader.close(); 
      inputStream.close(); 
      httpURLConnection.disconnect(); 
      return stringBuilder.toString().trim(); 
     } catch (MalformedURLException e){ 
      e.printStackTrace(); 
     } catch (IOException e){ 
      e.printStackTrace(); 
      System.out.println("Deal With Wrong Address"); 
      return null; 
     } 
     return null; 
    } 

Dank für Ihre Hilfe.

+0

die unten Antwort Hilfe Bitte benutzen Sie? –

Antwort

0

Zuerst sollten Sie überprüfen, ob Ihre Anwendung über eine Internetverbindung verfügt, dann rufen Sie nur diese Methode auf.

ConnectivityManager connMan = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); 
NetworkInfo netInfo = connMan.getActiveNetworkInfo(); 
if (netInfo != null && netInfo.isConnected()) { 
// Do stuff here for API call 
} 

Nachdem Sie genannt Sie fangen Timeout Ausnahmen weiterhin kann und benutzerdefinierte msg in Ihrem Try-Catch

In folgenden catch-Blöcke

 }catch (SocketTimeoutException bug) { 
      Toast.makeText(getApplicationContext(), "Socket Timeout", Toast.LENGTH_LONG).show(); 
     } catch (ConnectTimeoutException bug) { 
      Toast.makeText(getApplicationContext(), "Connection Timeout", Toast.LENGTH_LONG).show(); 
     } 

Auch gesetzt connection Parameter als auch für Ihre Anfrage zeigen, mit -

httpURLConnection.setConnectTimeout(5000); // 5 sec timeout 
+0

danke für Ihre Hilfe, aber seine immer noch Dosis funktioniert nicht :( –

+0

@AmirAlizadehHesari Was ist das Problem jetzt? Haben Sie irgendwelche Fehler –

0

Jungs, die ich glaube, ich habe festgelegt, dass Alles, was ich brauchte, war diese Linie

return String.valueOf(0); 

Statt

return null; 

aber viele dank kapsym

Verwandte Themen