GAE云端点与android集成 – 找不到GoogleJsonResponseException 404

我编写了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 – >主要 – >版本.

在那里,您将看到一个版本列表,其中包含一个Make Default按钮.选择最新版本的单选按钮,然后按下制作默认按钮,等待一分钟左右,然后再次尝试呼叫.

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

下次部署到应用引擎时,您可能必须再次执行此操作.

上一篇:用 np.logspace() 创建等比数列


下一篇:统计学习方法 | 第1章 统计学习方法概论 | numpy.linspace()