1. Hast Du Lust, bei uns mitzuarbeiten und das AH-Team zu verstärken? Alle Details zu dieser aktuellen Herausforderung findest Du hier.
  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 Forum Datum
[OFFEN] Bild per Intent an ListView übergeben und anzeigen Android App Entwicklung 13.08.2017
[ERLEDIGT] Android Studio Erste App-Programmierung Android App Entwicklung 02.08.2017
[ERLEDIGT] Widget reagiert nicht auf Click mit anschliessendem Http-Request Android App Entwicklung 04.07.2017
[NON-DEV] ADB -Nach Tutorial zur Speichererweiterung - Installation von Apps schlägt fehl Android App Entwicklung 24.06.2017
[ERLEDIGT] Hilfe bei Fehler in Quellcode benötigt Android App Entwicklung 23.06.2017
[GESCHLOSSEN] APK Zigalign Fehler Playstore Android App Entwicklung 13.06.2017
[GELÖST] Nach AS Update Fehler Error running app: Default Activity not found Android App Entwicklung 16.05.2017
Buttonclick verursacht absturz Android App Entwicklung 13.02.2017
Android SQLLite Fehler Android App Entwicklung 13.02.2017
Warum erhalte ich ein "IllegalArgumentException" zur Laufzeit ? Android App Entwicklung 02.02.2017
Du betrachtest das Thema "Http Request verursacht Fehler" im Forum "Android App Entwicklung",