我正在使用spring boot来模拟我们更复杂的服务之一。虽然所有标准案例都很容易完成,但有一个案例给我带来了一些麻烦。理论上,我嘲笑的应用程序可能会崩溃并关闭连接而不发送响应。
我在春季启动时尝试了几件事来实现这一点,而实际上没有让我的模拟器崩溃。这包括抛出异常处理程序中的异常并且从那里没有正确响应,但是到目前为止,要么已经通过spring生成了错误响应,要么以某种方式解析为空响应。
是否可以选择让@Conroller
中的方法在没有任何响应的情况下导致已关闭的连接?
答案 0 :(得分:0)
您可以创建如下方法:
@ResponseBody
@RequestMapping("/your-url")
public String test() {
return null;
}
您也可以将@Controller更改为@RestController并删除@ResponseBody
答案 1 :(得分:0)
关闭连接是HTTP规范和协议的责任。您无法以编程方式强制执行它。 HTTP客户端和HTTP服务器之间正在进行连接协商。
虽然您可以尝试中断当前线程或设置标题连接:关闭,但您不应该搞乱处理连接和请求的那部分。您的HTTP服务器可能会意外启动。
尝试不同的方法。如果您需要模拟已关闭的连接,您可以以编程方式分配HTTP服务器的新实例,向其发送请求,保持请求处理并终止实例是一个单独的线程。我确定你会找到一个更好的方法,从另一个角度找到问题的根源。