1. Nimm jetzt an unserem 2. ADVENT-Gewinnspiel teil - Alle Informationen findest Du hier!

Zugriff auf Server über JSON

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Stacks, 21.05.2011.

  1. Stacks, 21.05.2011 #1
    Stacks

    Stacks Threadstarter Neuer Benutzer

    Beiträge:
    1
    Erhaltene Danke:
    0
    Registriert seit:
    21.05.2011
    Hallo alle miteinander,

    ich bin leider noch recht neu in der App-Programmierung und hatte mich jetzt mal an ein kleines Projekt getraut.
    Allerdings renne ich da wohl irgendwo im Kreis.
    Ich wollte eine kleine App schreiben, die über einen Webservice Daten aus einer Datenbank holt und diese einfach in einer Liste darstellt. (Datenbank ist in Apache-SQL geschrieben. Das funktiniert auch einwandfrei)
    Dafür hatte ich ein Androidprogramm geschrieben mit 3 Buttons beim Start. Sobald man einen Button drückt sollte ein gewisser Wert (hier jetzt 1-3) über einen Webservice übermittelt werden. Als Request sollte dann die Liste zurück kommen.
    Anfänglich hatte ich versucht das ganze wirklich rein über Webservice zu implementieren, allerdings stellte sich das als nicht so erfolgreich raus. Jetzt hatte ich das nochmal versucht mit JSON. Da bleib ich jedoch zur Zeit ein wenig hängen und weiß leider nicht so ganz weiter. Auch in Internetforen renne ich irgendwie im Kreis...
    Deswegen wollte ich mal ganz dreist Fragen, ob jemand mir mal ein paar Code-schnipsel hat für die Implementierung von JSON auf der Server Seite und auf der Client Seite...

    Vielen Dank schonmal.

    Gruß
    Stacks
     
  2. ko5tik, 21.05.2011 #2
    ko5tik

    ko5tik Android-Experte

    Beiträge:
    620
    Erhaltene Danke:
    40
    Registriert seit:
    14.10.2009
    Phone:
    HTC Hero
    Serverside:

    Apache CXF -- Index

    Klientside:
    Code:
      HttpGet get = new HttpGet(pullUrl + "?since=" + since);
    
    
                            try {
                                HttpResponse response = httpClient.execute(get);
    
                                if (response.getStatusLine().getStatusCode() == 200) {
                                    // sending was successfull,  say that entry is saved
    
    
                                Log.d(LOG_TAG, "successfully pulled entries!!!");
    
    
                                    //  decode fresh entries and save them somewhere
                                    if (response.getEntity() != null) {
    
                                    JsonReader reader = new JsonReader(new StringReader(EntityUtils.toString(response.getEntity())));
                                    reader.setLenient(true);
                                    Log.d(LOG_TAG, "start unmarshalling");
                                    final List<? extends BaseHighscoreEntry> entries = JSONUnmarshaller.unmarshallArray(reader, getEntryClass());
                                    storage.addExternalEntries(entries);
                                    Log.d(LOG_TAG, "unmarshalling complete");
    
                                        // DO NOT SAVE it here,  because of race condition
                                        //storage.save();
                                    }
                                }
    
    
                            } catch (IOException e) {
                                Log.e(LOG_TAG, "io exception while retrieving shadow data", e);
                                e.printStackTrace();
                            }
    
    Das verwendet Google GSON & meine Datenbindungsbibliothek
    ( https://github.com/ko5tik/jsonserializer )

    Dies ist meine Highscore-Service, die ich in meiner Spielen verwende
     

Diese Seite empfehlen