[软件设计/软件工程] 如何检测 HttpServletRequest 是否有正文?

[复制链接]
发表于 2022-5-6 16:02:35
问题
我试图检测一个 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 的问题

使用道具 举报

Archiver|手机版|小黑屋|吾爱开源 |网站地图

Copyright 2011 - 2012 Lnqq.NET.All Rights Reserved( ICP备案粤ICP备14042591号-1粤ICP14042591号 )

关于本站 - 版权申明 - 侵删联系 - Ln Studio! - 广告联系

本站资源来自互联网,仅供用户测试使用,相关版权归原作者所有

快速回复 返回顶部 返回列表