【问题标题】:How to send data from Android mobile devices to the Google App Engine datastore?如何将数据从 Android 移动设备发送到 Google App Engine 数据存储区?
【发布时间】:2010-12-31 08:10:17
【问题描述】:

我需要编写一个从 Android 向 Google App Engine 发送数据的应用程序。我想发送的数据可以用典型的数据库记录来描述。每条记录都有一些整数、字符串、日期等。我想隐藏/保护连接详细信息,以便有人不能在数据存储中创建虚假数据,如果它不是太复杂的话。

我的问题是:将这些数据从 Android 设备导入 GAE 数据存储区的好方法是什么?如果您可以发布指向相应 Android 库的链接,或者发布过去如何完成此操作的链接,那将非常有帮助。

【问题讨论】:

    标签: android google-app-engine google-cloud-datastore


    【解决方案1】:

    是的,只需发送一个 http 帖子。这是我使用的一些在 Android 上运行良好的代码的 sn-p。

    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) {
            ....
        }
    

    【讨论】:

      【解决方案2】:

      这与 Android 无关 - 只需将 HTTP POST 发送到 GAE 提供的 URL,该 URL 将接受请求、处理请求并存储您的数据。没有“Android-GAE”royal road——POST 只是执行此操作的正常方式,无论谁发送它,谁服务它!

      【讨论】:

      • 好的,但是我该如何隐藏它,以免有人将虚假数据注入我的数据存储区? HTTP POST 不是很容易看到,因此很容易被错误地重新创建吗?抱歉,我对这些东西有点陌生。
      • 您应该始终假设有人可以窃听您的程序发送到服务器的数据并重新创建虚假数据。没有办法发送数据来防止这种情况发生,因为建立连接所需的所有信息都在客户端上,而您无法控制。为避免虚假数据,您需要对用户进行身份验证。让他们登录并取回令牌。这仍然不会阻止某人以登录用户的身份上传虚假数据。你必须在服务器端处理它。
      猜你喜欢
      • 1970-01-01
      • 2010-11-21
      • 1970-01-01
      • 2013-04-03
      • 1970-01-01
      • 2023-03-31
      • 1970-01-01
      • 2011-02-16
      • 2013-12-03
      相关资源
      最近更新 更多