2017-02-14 3 views
0

Ich habe eine KlasseAndroid HttpURLConnection immer wirft Ausnahme

import java.io.BufferedReader; 
import java.io.DataOutputStream; 
import java.io.InputStreamReader; 
import java.net.URL; 
import java.util.ArrayList; 
import java.lang.Exception; 
import java.net.HttpURLConnection; 
public class HttpURLConnectionExample { 
    private final String USER_AGENT = "Mozilla 5.0"; 
    // HTTP GET request 
    public ArrayList<dispencer> sendGet() throws Exception { 
     String url = "http://192.168.1.9"; 
     URL obj = new URL(url); 
     HttpURLConnection con = (HttpURLConnection) obj.openConnection(); 
     // optional default is GET 
     con.setRequestMethod("GET"); 
     //add request header 
     con.setRequestProperty("User-Agent", USER_AGENT); 
     int responseCode = con.getResponseCode(); 
     System.out.println("\nSending 'GET' request to URL : " + url); 
     System.out.println("Response Code : " + responseCode); 
     BufferedReader in = new BufferedReader(
       new InputStreamReader(con.getInputStream())); 
     String inputLine; 
     StringBuffer response = new StringBuffer(); 
     while ((inputLine = in.readLine()) != null) { 
     response.append(inputLine); 
    } 
    in.close(); 
    //print result 
    ArrayList<dispencer> dispList = new ArrayList<dispencer>(); 
    String[] strRows = response.toString().split("@"); 
    for (int i= 0; i <strRows.length; i++) { 
     dispencer disp = new dispencer(strRows[i]); 
     if (!disp.isOk) continue; 
     dispList.add(disp); 
     System.out.println(disp.indirizzo); 
    } 
    return dispList; 
} 
} 

ich die Methode sendGet wie folgt aufrufen.

 HttpURLConnectionExample httpFnd= new HttpURLConnectionExample(); 
      ArrayList<dispencer> listAr = new ArrayList<dispencer>(); 
      try{ 
       listAr = httpFnd.sendGet(); 
      } 
      catch (Exception Exception){ 

       fndLayout.setVisibility(View.GONE); 
       System.out.println("exception handled"); 
      } 

Immer wenn ich versuche sendGet bekomme ich immer die Meldung Ausnahme behandelt anrufen und meine nie arrayList zurück zu empfangen, wie Verbindung nie hergestellt wurde. Auch bekomme ich diesen Fehler Wenn ich die Methode aufrufen

D/NetworkSecurityConfig: Nein Network Security Config angegeben, Plattform Standard

, ist es die Ursache für mein Problem?

danke für die Hilfe.

BEARBEITEN Ich sah, dass ich asyncTask verwenden muss, um präventivo die Ausnahme Andy Vorschlag zu werfen, wie ich es implementieren muss?

+0

fügen Sie Ihre vollständigen Fehlerprotokoll – Jayanth

+0

welche Ausnahme trhown ist ? –

+0

Dies ist das Fehlerprotokoll 02/14 18:03:54: Starten der App W/System: ClassLoader referenziert unbekannten Pfad: /data/data/com.example.lele.condomadv/lib Hot vertauschte Änderungen, Aktivität neu gestartet E/EGL_emulation: TID 4615: eglSurfaceAttrib (1174): error 0x3009 (EGL_BAD_MATCH) W/OpenGLRenderer: fehlgeschlagen EGL_SWAP_BEHAVIOR auf Oberfläche 0x9a6e0060, error = EGL_BAD_MATCH E/EGL_emulation einzustellen: TID 4615: eglSurfaceAttrib (1174): error 0x3009 (EGL_BAD_MATCH) W/OpenGLRenderer: Fehler beim Festlegen von EGL_SWAP_BEHAVIOR auf der Oberfläche 0x9aac73e0, error = EGL_BAD_MATCH –

Antwort

0

Versuchen Sie folgendes:

class Loading extends AsyncTask {

@Override

protected Void doInBackground(Void... arg0)

{

// your code here

return null;

}

@Override

protected void onPreExecute()

{

//your code here

super.onPreExecute();

}

@Override

protected void onPostExecute(Void result)

{

//your code here

super.onPostExecute(result);

}

}//Loading

Haben Sie diese Zeile in AndroidManifest.xml hinzufügen erinnern:

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

und

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

+0

danke ich werde versuchen, über Berechtigungen ja ich gab diese Erlaubnis;) –