1. neubs, 08.03.2012 #1
    neubs

    neubs Threadstarter Neuer Benutzer

    Hallo Leute,

    ich arbeite mich mit meiner App so langsam vorwärts, aber bei dem aktuellen Problem konnte ich keine Antwort finden. Ich hab bestimmt nur wieder irdendwas vergessen, komm aber net drauf.

    Ich will eine Anfrage an einen Server schicken und will die Antwort prüfen.
    Der erstellte AuthString funktioniert, wenn ich diesen ausgeben lasse und im Browser einfüge bekomme ich eine Antwort zurück. Durch die vielen Log.i() Einträge konnte ich die Zeile des Fehlers rausfinden:
    HttpResponse resp = client.execute(req); Diese Zeile wird nicht mehr ausgeführt, dafür bekomme ich den Fehler "This thread forbids HTTP requests"

    In der Manifest habe ich die Permission "android.permission.INTERNET" hinzugefügt. Ausführen tue ich das ganze in der virtuellen Umgebung.
    Code:
        public Boolean DoAuthWithServer(Context ctx, String setServer, String setCode, String setPIN, String setMaNr) {
            String sAuthString;
            String sAnswer;
            
    
            try {
                sAnswer = "";
                if ((setServer != "") &&  (setCode != "") && (setPIN !="") && (setMaNr !="") ) {
                        
                    AndroidHttpClient client = AndroidHttpClient.newInstance("TxApp");
                    Log.i("log", "client erzeugt");
                    
                    sAuthString = setServer + "/general.php?action=auth&kdnr=" + setCode + "&kdpin=" + setPIN + "&manr" + setMaNr + "phoneid=" + getIMEI(ctx);
                    Log.i("string", sAuthString);
                    
                    HttpGet req = new HttpGet(sAuthString);
                    Log.i("log", "request erzeugt");
                    
    
                    HttpResponse resp = client.execute(req);
                    Log.i("log", "response gesendet");
                    
                    
                    HttpEntity entinity = resp.getEntity();
                    Log.i("log", "entinity bekommen");
                    
                    InputStreamReader reader = new InputStreamReader(entinity.getContent(), "utf-8");
                    // solange die Zeichen des Streams lesen bis er am ende ist (-1)
                    int c = reader.read();
                    while (c!=-1) {
                        sAnswer += (char)c;
                        c = reader.read();             
                    }
                    
                    sAnswer = sAnswer.trim();
                    if ( sAnswer == "OK") {
                        // Server meldete OK - nun die Daten ablegen ... 
                        saveConData(ctx,setServer,setCode, setPIN,setMaNr);
                        
                        return true;
                    } else {
                        return false;
                    }
    
                } else {
                    return false;
                }
            } catch (IOException e) {
                Log.i("log", "error:" + e);
                return false;
            }
        }
    Hoffe mir kann jemdand kurz nen Tip geben was ich schon wieder falsch gemacht habe.

    mfg
    sebastian
     
  2. Neeldarax, 08.03.2012 #2
    Neeldarax

    Neeldarax Erfahrener Benutzer

    Hi neubs,

    Let me google that for you

    network on main thread exception... diese Woche schon mal in diesem Forum gelesen :)
    Sollte sich das nicht klären, kann ich weiter zur Lösung beisteuern.

    regards
     
  3. neubs, 08.03.2012 #3
    neubs

    neubs Threadstarter Neuer Benutzer

    Danke,
    hab anscheinend vorhin net ordentlich geschaut. Hab jetzt nen extra Thread erstellt, dann klappts auch :)
    Zumindest ist der Fehler weg, und 2 neue Probleme aufgetaucht ... ich google mal wieder ne Runde.

    mfg
    sebastian
     
  4. S1m, 17.03.2012 #4
    S1m

    S1m Gast

    Auf meinem meinem Nexus S mit der Version 2.3 gingen übrigens die HTTP Get befehle nicht. ich muss da immer post nehmen. ( bekannter bug )
     
Die Seite wird geladen...
Ähnliche Themen - Http Request verursacht Forum Datum
Suche RequestPermission für ACTION_USAGE_ACCESS_SETTINGS Android App Entwicklung 17.11.2016
Volley Request zu langsam Android App Entwicklung 27.05.2016