【发布时间】:2012-05-15 20:18:21
【问题描述】:
对不起,如果这是一个简单的问题,但我无法弄清楚我应该做什么,而且我认为我在这里有点超出我的深度。我想将数据从 Android 应用程序发送到我在 Google App Engine 上运行的应用程序。必须从那里将数据写入数据存储区。我的数据主要是对象的形式,我正在使用 Java。
我遇到了以下问题:how-can-i-connect-a-google-app-engine-application-with-my-android
我想我了解 Android 端会发生什么。我也了解 doPost 方法的工作原理以及它应该做什么。但我的问题是,我现在如何使用 PersistenceManagerFactory 将此数据写入我的数据存储区,或检索它?即,如果我想在那里使用 PersistenceManagerFactory,doPost 中的代码会是什么样子?
基本上,我的移动应用程序必须能够与我的 AppEngine 应用程序 w.r.t 执行相同的操作。数据检索/写入。
或者我应该忘记这种方法并做一些不同的事情吗?
任何指向正确方向的指针将不胜感激!
编辑:
我已经开始实施 Sam 的解决方案,如下所示。但是,有些事情仍然不对劲。这是我目前正在做的事情:
在我的 GAE 应用程序的 web.xml 中映射我的 servlet:
<servlet>
<servlet-name>this_servlet</servlet-name>
<servlet-class>*app-details*.server.JsonNews</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>this_servlet</servlet-name>
<url-pattern>/my_app/my_app_place</url-pattern>
</servlet-mapping>
doPost() 方法的实现与 Sam 的相同。
在我的 Android 应用中:
DefaultHttpClient hc=new DefaultHttpClient();
ResponseHandler <String> res=new BasicResponseHandler();
HttpPost postMethod=new HttpPost("http://my_application.appspot.com/my_app/my_app_place");
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("value1", "Value my user entered"));
postMethod.setEntity(new UrlEncodedFormEntity(nameValuePairs));
String response=hc.execute(postMethod,res);
但是,hc.execute 方法失败,并为我提供以下消息:内部服务器错误
这让我相信错误一定是在服务器端——但我不确定哪里或为什么会出错。我完全复制了 Sam 的代码,只更改了必要的内容,例如“News”。
【问题讨论】:
标签: java android google-app-engine http datastore