找回密码
 立即注册
问题
我试图检测一个 http 请求是否有一个主体,而无需阅读它或做任何使现有代码无法处理它的事情,无论它在流中稍后做什么。
  1. boolean hasBody(HttpServletRequest http) {
  2.     boolean hasBody = false;
  3.     try {
  4.         hasBody = http.getInputStream() != null; // always gives true
  5.         hasBody = http.getReader().ready(); // always gives IllegalStateException
  6.     } catch (IOException e) {
  7.     }
  8.     return hasBody;
  9. }
复制代码

不幸的是,当我将它们测试为 GET 和 POST 和 body 时,我想不出这两项检查都有效。

请注意,如果可能,我不想这样做:“POST”.equals(http.getMethod()) 或 !"GET".equals(http.getMethod()) 因为我不确定有一种没有身体的方法。

回答
您可以使用 getContentLength() 或 getContentLengthLong() 并检查它是否为正。





上一篇:在jQuery中获取复选框值
下一篇:从 Atom 运行 Java 的问题