我在Android客户端的Restlet
中使用Google AppEngine
获得了以下代码。
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
表示请求已经完成。
我无法排除故障,因为我只能在开发服务器中这样做,而且工作正常。
关于问题可能是什么或如何解决这个问题的任何想法?
作为参考,服务器端的代码是:
if (product != null ) {
if (new DataStore().putToDataStore(product) ) {
log.warning("Product written to datastore");
} else {
log.warning("Product not found in datastore");
}
}
这只是使用Objectify
对数据存储区的简单写入。
答案 0 :(得分:0)
原来这是一个已知问题。见here
解决方案是使用clientResource.setEntityBuffering(true);
。但请注意,此方法仅适用于Android客户端的候选版本,而不适用于稳定版本。