首頁  >  文章  >  後端開發  >  如何使用 HTTProuter 在 Go 中自訂 HTTP 404 錯誤處理?

如何使用 HTTProuter 在 Go 中自訂 HTTP 404 錯誤處理?

Susan Sarandon
Susan Sarandon原創
2024-10-26 13:56:31474瀏覽

How to Customize HTTP 404 Error Handling in Go with HTTProuter?

使用 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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn