App Engine端点中的原始HTTP请求正文

时间:2016-11-07 00:17:00

标签: http google-app-engine endpoint endpoints

我感兴趣的是在直接调用此端点所在的URL(https://<my app name>.appspot.com/_ah/api/endpoints/v1/test)并向主体提供它时,获取到我的端点的HTTP POST请求的原始主体。以下是成功调用端点的方法:

 @ApiMethod(name = "test", path = "test", httpMethod = ApiMethod.HttpMethod.POST)
public WrappedBoolean test(final HttpServletRequest request, ServletContext servletContext) throws Exception {

    //???
    return new WrappedBoolean(true); 
}

不幸的是,尝试从InputStream中检索HttpServletRequest然后读取它,给我一个-1,意味着所有数据都已被读取。这是有道理的,因为App Engine端点运行时很可能已经处理了请求。

任何人都有关于如何获取POST到此端点的原始POST请求的观点?

1 个答案:

答案 0 :(得分:0)

似乎无法轻松恢复原始邮件。必须进行额外的操作 - 例如在请求前面放置一个过滤器,读取请求,将其保存在属性中并在端点调用期间获取该属性。所有这一切都必须仔细完成,以免弄乱用于管理的SPI运行时(端点)的输入流,否则,不会调用端点。 无论如何,太麻烦了。我放弃了做一些真正意义不大的端点,并直接使用了一个java Servlet。