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