如何将数据从Android移动设备发送到Google App Engine数据存储区?

时间:2009-12-31 05:22:10

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

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

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

2 个答案:

答案 0 :(得分:6)

没有特定于Android的内容 - 只需将HTTP POST发送到GAE服务的网址即可接受请求,处理请求并存储数据。没有“Android-GAE”royal road - POST只是执行此操作的正常方式,无论是谁发送它,无论是谁服务它!

答案 1 :(得分: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) {
        ....
    }