Anpassen der HTTP 404-Verarbeitung mit HTTProuter
HTTProuter bietet die Möglichkeit, 404-Antworten manuell zu verarbeiten. Um dies zu erreichen, muss eine benutzerdefinierte Handlerfunktion definiert werden.
Die Router-Struktur von HTTProuter verfügt über ein NotFound-Feld vom Typ http.Handler. Die http.Handler-Schnittstelle definiert eine einzelne Methode, ServeHTTP(ResponseWriter, *Request). Daher muss ein benutzerdefinierter Handler diese Funktion implementieren.
Um einen benutzerdefinierten Handler zu erstellen, definieren Sie eine Funktion mit der Signatur func(http.ResponseWriter, *http.Request). Konvertieren Sie diese Funktion mithilfe der Hilfsfunktion http.HandlerFunc() in einen http.Handler-Wert. Zum Beispiel:
<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>
Dieser benutzerdefinierte Handler wird vom HTTProuter ausgelöst. Alternativ kann es manuell von anderen Handlern aufgerufen werden, indem die ResponseWriter- und *Request-Instanzen übergeben werden:
<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>
Das obige ist der detaillierte Inhalt vonWie kann ich die HTTP 404-Fehlerbehandlung in Go mit HTTProuter anpassen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!