android - GAE 云端点与 android 的集成 - 未找到 GoogleJsonResponseException 404

标签 android google-app-engine cloud http-status-code-404 endpoint

我编写了 GAE 云端点 API,并已成功将它们部署到 App Engine。 API 在本地以及在 App Engine 上部署后都成功运行。

生成云端点后,我尝试调用我的 Android 客户端中的 API 之一,它抛出“未找到 GoogleJSONResponseException 404”异常。在 API 方法中,我使用 HttpURLConnection 和 JAXB unmarshaller 调用 URL 并解码 XML 响应。代码如下:

String uri=<some url>;
URL url = new URL(uri);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setRequestProperty("Accept", "application/xml");

JAXBContext jc = JAXBContext.newInstance(MyResponse.class);
InputStream xml = connection.getInputStream();
response = (MyResponse) jc.createUnmarshaller().unmarshal(xml);

connection.disconnect();

为什么仅当尝试使用端点客户端库从 Android 客户端调用时这不起作用?难道我做错了什么?

注意:我在同一个 android 客户端中调用了另一个 API,它只是将数据插入数据存储区并且工作正常

LogCat 控制台如下所示:

06-17 11:44:49.081: W/System.err(2035): com.google.api.client.googleapis.json.GoogleJsonResponseException: 404 Not Found
06-17 11:44:49.081: W/System.err(2035): Not Found
06-17 11:44:49.081: W/System.err(2035):     at com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.newExceptionOnError(AbstractGoogleJsonClientRequest.java:111)
06-17 11:44:49.081: W/System.err(2035):     at com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.newExceptionOnError(AbstractGoogleJsonClientRequest.java:38)
06-17 11:44:49.081: W/System.err(2035):     at com.google.api.client.googleapis.services.AbstractGoogleClientRequest$1.interceptResponse(AbstractGoogleClientRequest.java:314)
06-17 11:44:49.081: W/System.err(2035):     at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:1060)
06-17 11:44:49.081: W/System.err(2035):     at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:412)
06-17 11:44:49.081: W/System.err(2035):     at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:345)
06-17 11:44:49.081: W/System.err(2035):     at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:463)
06-17 11:44:49.081: W/System.err(2035):     at com.niru.i_collect.RegistrationActivity$FindAddressTask.doInBackground(RegistrationActivity.java:296)
06-17 11:44:49.081: W/System.err(2035):     at com.niru.i_collect.RegistrationActivity$FindAddressTask.doInBackground(RegistrationActivity.java:1)
06-17 11:44:49.081: W/System.err(2035):     at android.os.AsyncTask$2.call(AsyncTask.java:287)
06-17 11:44:49.081: W/System.err(2035):     at java.util.concurrent.FutureTask.run(FutureTask.java:234)
06-17 11:44:49.081: W/System.err(2035):     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
06-17 11:44:49.081: W/System.err(2035):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
06-17 11:44:49.081: W/System.err(2035):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
06-17 11:44:49.081: W/System.err(2035):     at java.lang.Thread.run(Thread.java:856)

最佳答案

App Engine 中有一个奇怪的错误。好像遇到这种情况,你得去App Engine Console -> Main -> Versions.

您会看到一个版本列表,下面有一个Make Default 按钮。选择最新版本的单选按钮并按设为默认按钮,等待一分钟左右,然后重试您的调用。

请注意,即使您只有一个已设置为默认的版本,此解决方案仍然有效。

您可能需要在下次部署到 App Engine 时再次执行此操作。

关于android - GAE 云端点与 android 的集成 - 未找到 GoogleJsonResponseException 404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17146198/

相关文章:

java - 如何从 java.sql.SQLException : Concurrent Modification 重试/恢复

cloud - 将第二个内部/私有(private) IP 地址添加到谷歌云 vm 实例

java - 三星 s8 和 s9 中的 Android 外部写入权限问题

google-app-engine - 是否可以在运行时读取 Google App Engine 应用程序的版本?

java - EditText 检查是否有关键字

google-app-engine - 如何解压由Google AppEngine批量下载器编写的sqlite3数据库

使用冗余环境时的 Azure 身份验证

linux - Netlogo HPC CPU 使用百分比增加

android - 如何防止在android fragment 中按下后退按钮时调用onCreateView

android - 如何优化从内部存储加载图像到 gridview