小编Con*_*r H的帖子

重写 ResponseWriter 接口以捕获 HTTP 错误

我正在用 Go 编写一个 Web 应用程序,虽然各种 mux 库提供了一种设置自定义 404 错误处理程序的方法,但没有其他 4xx 和 5xx 错误代码。

一个建议是重写 ResponseWriter 接口中的 WriteHeader 方法并检查状态代码,但我对实际如何编写它感到困惑(在输出之前重写 ResponseWriter 方法)。一个可能的例子可以从negroni 包中找到。

这是为 4xx 和 5xx 错误提供自定义模板的正确方法吗?谁能提供一个如何实施的例子?

更新

非常感谢 David 和 elithrar 的回复和代码。David 编码的结构Interceptor可以在服务器复用器的包装器中使用,如 elithrar 在注释中所示。对于那些想要进一步解释其工作原理和原因的人,astaxie 书中的这一部分提供了一些有关 net/http 包工作原理的非常好的信息,以及查看net/http 包中的server.go 源代码。

go

4
推荐指数
1
解决办法
3943
查看次数

标签 统计

go ×1