如何使用空值响应标头使基于java的应用程序服务器回复,如下所示?
content-length:\r\n
不幸的是,当我打电话
response.setHeader("Content-Length", len)
其中len是空字符串或null,响应将不包括标题。
我已经检查了HttpServletResponse和HttpServletResponseWrapper javadocs,但无法弄清楚可以覆盖什么来提供我的自定义行为。
我正在构建一个应该模拟表现不佳的HTTP服务器场景的测试应用程序。该应用程序应该回复具有预设页面和HTTP标头的请求,包括上述情况下的格式错误。 该应用程序是用grails编写的。
答案 0 :(得分:1)
答案 1 :(得分:1)
我正在构建一个应该模拟表现不佳的HTTP服务器场景的测试应用程序。
在这种情况下,试图让一个表现良好的服务器模仿这种行为是一个坏主意。如果您需要模拟错误的服务器或您希望测试的特定场景集,那么您可以执行以下操作之一:
答案 2 :(得分:0)
对我来说不太清楚:你的应用程序是用Grails编写的,但是你正在讨论javadocs ......好吧,我想你试着在JAVA中创建一个糟糕的服务器......
正如您所说,回答“Content-Length:\ r \ n”对于HTTP来说是不合法的。您必须输入整数值或丢弃标题。我认为setHeader()可以帮助您避免产生非法的HTTP消息。
您可以通过这种方式手动创建标题(您可以直接写入套接字而不使用setHeader块)。
其他解决方案是使用您自己的HttpServletResponse实现创建一个过滤器(除了您的servlet)。您将把此实现传递给servlet。