在Google App Engine中读取Java Servlet输入流时出现问题

在Google App Engine中读取Java Servlet输入流时出现问题,java,google-app-engine,servlets,Java,Google App Engine,Servlets,我正在使用GoogleAppEngine构建一些东西,并尝试创建一个Javaservlet,用于读取原始POST数据并对其进行处理。根据servlet文档,这应该可以使用getReader()方法或getInputStream()方法实现。然而,至少在我的开发设备上本地运行的appengine开发服务器上,getInputStream()似乎在doPost方法输入之前就已经被调用了 我主张这一点的证据如下: getReader抛出java.lang.IllegalStateException(请

我正在使用GoogleAppEngine构建一些东西,并尝试创建一个Javaservlet,用于读取原始POST数据并对其进行处理。根据servlet文档,这应该可以使用getReader()方法或getInputStream()方法实现。然而,至少在我的开发设备上本地运行的appengine开发服务器上,getInputStream()似乎在doPost方法输入之前就已经被调用了

我主张这一点的证据如下:

  • getReader抛出java.lang.IllegalStateException(请参阅)
  • getInputStream返回有效的输入流,但对该输入流调用read()将返回-1(请参阅)
  • 在调用getInputStream之前,我检查了,但没有调用getParameter()。getInputStream()是我在doPost方法体中调用的第一个对象

    这里出了什么问题?

    请参阅谷歌应用程序引擎问题跟踪器:

    这是因为内容类型是作为 “application/x-www-form-urlencoded”。在这种情况下,将读取流 并映射为键值对,以便您可以作为 由于相同的原因,流是 空的。当 内容类型作为“应用程序/八位字节流”发送