Menyesuaikan Pengendalian HTTP 404 dengan HTTProuter
HTTProuter menyediakan keupayaan untuk mengendalikan respons 404 secara manual. Untuk mencapai matlamat ini, fungsi pengendali tersuai mesti ditakrifkan.
Struktur Penghala HTTProuter mempunyai medan NotFound jenis http.Handler. Antara muka http.Handler mentakrifkan satu kaedah, ServeHTTP(ResponseWriter, *Request). Oleh itu, pengendali tersuai mesti melaksanakan fungsi ini.
Untuk mencipta pengendali tersuai, takrifkan fungsi dengan fungsi tandatangan(http.ResponseWriter, *http.Request). Tukar fungsi ini kepada nilai http.Handler menggunakan fungsi pembantu http.HandlerFunc(). Contohnya:
<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>
Pengendali tersuai ini akan dicetuskan oleh HTTProuter. Sebagai alternatif, ia boleh digunakan secara manual daripada pengendali lain dengan menghantar ResponseWriter dan *Permintaan contoh:
<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>
Atas ialah kandungan terperinci Bagaimana untuk Menyesuaikan Pengendalian Ralat HTTP 404 dalam Go dengan HTTProuter?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!