使用 HTTProuter 自定义 HTTP 404 处理
HTTProuter 提供手动处理 404 响应的功能。为了实现这一点,必须定义一个自定义处理函数。
HTTProuter 的 Router 结构拥有一个 http.Handler 类型的 NotFound 字段。 http.Handler 接口定义了一个方法 ServeHTTP(ResponseWriter, *Request)。因此,自定义处理程序必须实现此函数。
要创建自定义处理程序,请定义一个带有签名 func(http.ResponseWriter, *http.Request) 的函数。使用 http.HandlerFunc() 辅助函数将此函数转换为 http.Handler 值。例如:
<code class="go">func MyNotFound(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Type", "text/plain; charset=utf-8") w.WriteHeader(http.StatusNotFound) // Set status to 404 w.Write([]byte("My NotFound handler")) } router.NotFound = http.HandlerFunc(MyNotFound)</code>
此自定义处理程序将由 HTTProuter 触发。或者,可以通过传递 ResponseWriter 和 *Request 实例从其他处理程序手动调用它:
<code class="go">func ResourceHandler(w http.ResponseWriter, r *http.Request) { if ... { // Check for resource availability router.NotFound(w, r) return } // ... Serve the resource }</code>
以上是如何使用 HTTProuter 在 Go 中自定义 HTTP 404 错误处理?的详细内容。更多信息请关注PHP中文网其他相关文章!