我正面临着一个我不知道如何解释的问题。我正在使用 Android 和 Google App Engine 做一个项目。当我尝试直接从 servlet(硬编码)将信息保存在 Google App Engine 的大表中时 - 保存没有问题。但是当我尝试从我的 Android 设备保存数据时,没有执行保存,并且日志显示 Apache-HttpClient/UNAVAILABLE 错误。更加具体:
405 55ms 0kb Apache-HttpClient/UNAVAILABLE (java 1.4)
82.155.246.249 - - [10/Jun/2013:05:20:59 -0700] "POST /servletnamehere HTTP/1.1" 405 306 - "Apache-HttpClient/UNAVAILABLE (java 1.4)" "appnamehere.appspot.com" ms=56 cpu_ms=21 cpm_usd=0.000034 app_engine_release=1.8.0 instance=00c61b117cede3f754aa1ece730dc88287a20199
我已经看到 405 HTTP 错误出现在 POST 方法的上下文中(“405 错误通常与 POST 方法一起出现。您可能试图在网站上引入某种输入表单,但并非所有 ISP 都允许 POST 方法处理表单所必需的。”) => 实际上,我正在尝试使用 POST 方法在数据库中执行添加(对象是 JPA 实体)。我从我的 Android 设备接收到的数据是通过输入流进行序列化的(在我的情况下,不能使用 JSON,这些是规范)。
此外,306 HTTP 错误是指切换代理。虽然这个错误可能有点直观,但这个错误超出了我学生的知识范围。
我已按照本教程(http://trumpy.cs.elon.edu/joel/sigcse2011/)的说明进行操作,这确实是我需要的,但我真的无法弄清楚我做错了什么。我一步一步地再次接受了这个程序,但我没有看到缺陷。
任何帮助将不胜感激。如果我应该发布一些代码,我会很乐意这样做。
最美好的祝愿,麦田怪圈
后期编辑:
现在我得到 417 HTTP 错误期望失败。我已经看到我应该将某个参数设置为 false,但这种解决方法仅适用于 .NET。有没有人知道Java中以下内容的对应者是什么?我真的很困惑。
<system.net>
<settings>
<servicePointManager expect100Continue="false" />
</settings>
</system.net>