我用于向客户端返回超时。这工作正常,问题是如果触发了超时,我正在尝试调用一些代码。我已经浏览了文档和源代码,但我找不到一个好的方法来做到这一点。响应只是回到客户端,我找不到一种方法来对上下文或响应编写器等进行任何内省。http.TimeoutHandler调用代码无权访问上下文,因此我无法检查它。写入的实际结构确实将我需要的信息放入其中(它是 ),但我无法访问它,因为接口不支持访问这些变量。http.ResponseWriterhttp.TimeoutHandlerhttp.timeoutWriterhttp.ResponseWriter我对围棋没有太多的经验,但我不禁认为我将不得不重新实现我自己的,因为我看不到一种方法来做我需要做的事情。http.TimeoutHandler我错过了什么吗?
1 回答
holdtom
TA贡献1805条经验 获得超10个赞
从 的源中可以看出,它将请求中的上下文设置为具有超时的上下文。这意味着,在您的处理程序中,您可以使用上下文来查看是否发生了超时:TimeoutHandler
func MyHandler(w http.ResponseWriter,r *http.Request) {
...
if r.Context().Err()==context.DeadlineExceeded {
// Timeout happened
}
}
- 1 回答
- 0 关注
- 106 浏览
添加回答
举报
0/150
提交
取消