2009-12-31 112 views
8

我需要编写一个将数据从Android发送到Google App Engine的应用程序。我想发送的数据可以通过典型的数据库记录来描述。每条记录都有一些整数,字符串,日期等。我希望保持连接细节隐藏/保护,以便有人不能在数据存储区中创建错误的数据,如果它不涉及太多的话。如何将数据从Android移动设备发送到Google App Engine数据存储?

我的问题是:从Android设备获取这些数据到GAE数据存储的好方法是什么?如果你可以发布一个链接到适当的Android库,或者链接到过去的工作方式,那将会非常有用。

回答

4

是的,只发送一个http文章。以下是我使用的一些代码,在Android上运行良好。

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

没有针对Android的具体内容 - 只需将HTTP POST发送到GAE投放的网址,该网址将接受请求,处理该请求并存储您的数据。没有“Android-GAE”royal road - 一个POST是执行此操作的正常方式,无论是谁发送它,谁发送它!

+0

好的,但我将如何保持隐藏,以便有人不能将虚假数据注入到我的数据存储?不容易看到HTTP POST,因此容易重新创建错误?对不起,我对这个东西有些不好意思。 – Doughy 2009-12-31 05:36:22

+2

您应该始终假定有人可以窃听程序发送到服务器的数据并重新创建错误数据。无法发送阻止这种情况的数据,因为建立连接所需的所有信息都在客户端上,而您无法控制这些信息。 为避免虚假数据,您需要验证用户身份。让他们登录并取回令牌。 这仍然不会阻止某人上传虚假数据作为登录用户。你必须在服务器端处理它。 – dmazzoni 2009-12-31 05:55:43

相关问题