Menamatkan Permintaan HTTP dalam Go
Dalam Go, anda boleh menamatkan permintaan HTTP dengan kembali daripada kaedah ServeHTTP() pengendali HTTP . Pendekatan ini membolehkan anda menamatkan permintaan dan menghantar respons kepada pelanggan.
Contoh:
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { // Examine incoming parameters if !ok { str := `{"Result":"","Error":"No valid Var"}` fmt.Fprint(w, str) return // Terminate the request } // Continue normal API serving })
Nota:
Contoh:
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { // Examine incoming parameters if !ok { http.Error(w, `Invalid input params!`, http.StatusBadRequest) return // Terminate the request } // Continue normal API serving })
Contoh:
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { // Examine incoming parameters if !ok { w.Header().Set("Content-Type", "application/json") w.WriteHeader(http.StatusBadRequest) str := `{"Result":"","Error":"No valid Var"}` fmt.Fprint(w, str) return // Terminate the request } // Continue normal API serving })
Penyebaran Ralat:
Jika anda menghadapi ralat di luar daripada ServeHTTP(), anda mesti mengembalikan keadaan ralat itu supaya ServeHTTP() boleh menamatkan permintaan.
Contoh:
type params struct { // Field definitions for your parameters } func decodeParams(r *http.Request) (*params, error) { p := new(params) // Decode parameters if !ok { return nil, errors.New("Invalid params") } return p, nil } http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { p, err := decodeParams(r) if err != nil { http.Error(w, `Invalid input params!`, http.StatusBadRequest) return // Terminate the request } // Continue normal API serving })
Atas ialah kandungan terperinci Bagaimana untuk Menamatkan Permintaan HTTP dengan Berkesan dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!