java - Tomcat 7 接受不完整的数据 - 期待 SocketTimeoutException

标签 java tomcat post

我有一个基于 tomcat 的 java web 应用程序。 我用 tomcat 7 发现的问题是接受不完整的数据。

我的场景: 我尝试发送一个带有 ~100kb JSON 正文的 HTTP POST 请求。 我在请求中间停止客户端。

预期行为: 我希望请求无效,错误代码作为响应。 实际行为: 应用程序接收部分 JSON。

我每次都能重现。

当我读取请求对象时: - Content-Length 标题是正确的。 - 正文中的 JSON 是部分的。

我复制了以下 tomcat 版本: 7.0.57 7.0.63 我无法用 tomcat 8.0.24 重现。 对我来说升级是不可能的。

可以配置tomcat拒绝部分请求吗? 我不会对 tomcat 应该处理的问题实现验证。

最佳答案

我想你搜索的是 FailedRequestFilter .

将以下代码添加到您的 web.xml 中以添加过滤器

<filter>
    <filter-name>FailedRequestFilter</filter-name>
    <filter-class>org.apache.catalina.filters.FailedRequestFilter</filter-class>
</filter>

关于java - Tomcat 7 接受不完整的数据 - 期待 SocketTimeoutException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32118708/

相关文章:

java - REST WS 的编码解码变音符号

java - Gerrit REST API 中的查询超过 500 条限制

java - 配置tomcat接受post请求

java - 如何使用 Spring 的 RestTemplate 来 POST 一个字符串数组

php - 如何从我的新帖子管理面板将新博客帖子添加到我的帖子数据库?

java - 覆盖具有不同签名的方法

java - Java 中简单的横向卷轴游戏出现滞后

maven - 如何在命令行指定tomcat7-maven-plugin使用的服务器信息?

apache - 处理您的请求时发生错误

php - Postman 向 Laravel 发送 POST 请求