2009-12-31 2 views
8

Ich muss eine Anwendung schreiben, die Daten von Android an die Google App Engine sendet. Die Daten, die ich senden möchte, können durch einen typischen Datenbankeintrag beschrieben werden. Jeder Datensatz enthält einige Ganzzahlen, Strings, Datumsangaben usw. Ich möchte die Verbindungsdetails verborgen/gesichert halten, so dass jemand keine falschen Daten im Datenspeicher erstellen kann, wenn es nicht zu aufwendig ist.Wie senden Sie Daten von Android-Mobilgeräten an den Google App Engine-Datenspeicher?

Meine Frage ist: Was ist ein guter Weg, um diese Daten von Android-Geräten in den GAE-Datenspeicher zu bekommen? Wenn Sie einen Link zu den entsprechenden Android-Bibliotheken oder einen Link zu dem, wie dies in der Vergangenheit getan wurde, könnten, wäre das wirklich hilfreich.

Antwort

4

Ja, senden Sie einfach einen http-Post. Hier ist ein Ausschnitt aus Code, den ich für Android verwendet habe.

import org.apache.http.HttpResponse; 
import org.apache.http.client.HttpClient; 
import org.apache.http.client.methods.HttpPost; 
import org.apache.http.entity.ByteArrayEntity; 
import org.apache.http.impl.client.DefaultHttpClient; 
import org.apache.http.params.BasicHttpParams; 
import org.apache.http.params.HttpConnectionParams; 
import org.apache.http.params.HttpParams; 

    try { 
     int TIMEOUT_MILLISEC = 10000; // = 10 seconds 
     HttpParams httpParams = new BasicHttpParams(); 
     HttpConnectionParams.setConnectionTimeout(httpParams, 
                TIMEOUT_MILLISEC); 
     HttpConnectionParams.setSoTimeout(httpParams, TIMEOUT_MILLISEC); 
     HttpClient client = new DefaultHttpClient(httpParams); 

     HttpPost request = new HttpPost(serverUrl); 
     request.setEntity(new ByteArrayEntity(
      postMessage.toString().getBytes("UTF8"))); 

     HttpResponse response = client.execute(request); 
    } catch (Exception e) { 
     .... 
    } 
6

Nichts Android-spezifisch - senden Sie einfach eine HTTP POST an eine GAE-bediente URL, die die Anfrage akzeptiert, verarbeitet und speichert Ihre Daten. Es gibt kein "Android-GAE" royal road - ein POST ist nur der normale Weg, dies zu tun, wer auch immer es sendet, wer auch immer es serviert!

+0

OK, aber wie würde ich das verborgen halten, damit jemand keine falschen Daten in meinen Datenspeicher injizieren kann? Sind HTTP-POSTs nicht einfach zu sehen und somit leicht falsch zu erstellen? Tut mir leid, ich bin ein bisschen noob in diesem Zeug. – Doughy

+2

Sie sollten immer davon ausgehen, dass jemand die Daten, die Ihr Programm an den Server sendet, belauschen und falsche Daten neu erstellen kann. Es gibt keine Möglichkeit, Daten zu senden, die dies verhindern, da alle für die Verbindung erforderlichen Informationen sich auf dem Client befinden, den Sie nicht steuern. Um falsche Daten zu vermeiden, müssen Sie den Benutzer authentifizieren. Lassen Sie sich einloggen und erhalten Sie ein Token zurück. Das wird immer noch nicht jemanden davon abhalten, falsche Daten als angemeldeter Benutzer hochladen. Sie müssen das auf der Serverseite behandeln. – dmazzoni

Verwandte Themen