2012-06-21 40 views
0

我從Android客戶端獲得RestletGoogle AppEngine以下代碼段。Restlet和GAE的奇怪行爲

ClientResource clientResource = new ClientResource(RESTLET_TEST_URL); 
ProductResource productResource = clientResource.wrap(ProductResource.class); 
productResource.store(mProduct); 
Status status = clientResource.getResponse().getStatus(); 
Toast.makeText(this, "Status: "+ status.getDescription(), Toast.LENGTH_SHORT).show(); 
clientResource.release(); 

.store()方法類似於PUT請求。奇怪的是,當我連接到開發服務器,但在實際的AppEngine站點上時,這沒問題。我只是得到Status: OK表示請求已經過。

我無法排除故障原因我只能在Dev Server中這樣做,並且工作正常。

任何想法可能是什麼問題或如何解決這個問題?

作爲參考,在服務器端的代碼是:

if (product != null) { 
    if (new DataStore().putToDataStore(product)) { 
    log.warning("Product written to datastore"); 
} else { 
     log.warning("Product not found in datastore"); 
    } 
} 

這僅僅是一個簡單的寫入使用Objectify的數據存儲。

回答

0

原來這是一個已知問題。請參閱here

解決方案是使用clientResource.setEntityBuffering(true);。但是,請注意,此方法僅適用於Android客戶端發佈候選版本,不在穩定版本中。