Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Menyesuaikan Pengendalian Ralat HTTP 404 dalam Go dengan HTTProuter?

Bagaimana untuk Menyesuaikan Pengendalian Ralat HTTP 404 dalam Go dengan HTTProuter?

Susan Sarandon
Lepaskan: 2024-10-26 13:56:31
asal
555 orang telah melayarinya

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

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan