2009-12-31 111 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

相關問題