【问题标题】:GAE cloud endpoint integration with android - GoogleJsonResponseException 404 not foundGAE 云端点与 android 集成 - 未找到 GoogleJsonResponseException 404
【发布时间】:2013-06-17 11:16:36
【问题描述】:

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

生成云端点后,我尝试在我的 Android 客户端中调用其中一个 API,但它会引发“GoogleJSONResponseException 404 not found”异常。在 API 方法中,我使用 HttpURLConnection 和 JAXB 解组器来调用 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)

【问题讨论】:

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


    【解决方案1】:

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

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

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

    下次部署到应用引擎时,您可能需要再次执行此操作。

    【讨论】:

    • 干得好,这太令人沮丧了:)
    • 我尝试重新部署后端,并尝试将我的后端的唯一版本“设为默认”。不幸的是,我仍然有同样的错误。 - Android工作室/端点/数据存储
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多