Apabila memperkenalkan pemprosesan permintaan di Golang, editor PHP Baicao menekankan masalah tidak ditemui halaman 404 yang mungkin dihadapi semasa menghantar permintaan GET. Golang, sebagai bahasa pengaturcaraan yang cekap dan berkuasa, boleh menyelesaikan masalah ini melalui pemprosesan yang sesuai untuk memastikan pengguna mendapat respons yang betul. Apabila menulis kod, anda perlu memberi perhatian untuk menggunakan mekanisme pengendalian ralat yang sesuai, serta konfigurasi laluan dan laluan yang betul untuk mengelakkan berlakunya ralat 404. Dengan cara ini, pengguna boleh menikmati pengalaman menyemak imbas web yang lebih baik.
Saya baru kenal golang. Saya cuba menulis pelayan api menggunakan golang tanpa menggunakan sebarang kerangka http (echo, gin, dll.). Saya menulis titik akhir "siaran" tetapi titik akhir "dapat" saya tidak bertindak balas. Saya cuba menulis titik akhir get lain yang dipanggil "ping" dan ia berfungsi. Rambut kerinting saya
curl --location 'http://localhost:8080/users/45254424-5be1-487d-9131-bad3b2f7791c'
Penangan saya
func (u userhandler) getbyid(writer http.responsewriter, request *http.request) { id := strings.trimprefix(request.url.path, "/users/") user := u.userservice.getbyid(uuid.must(uuid.parse(id))) writer.header().set("content-type", "application/json") json.newencoder(writer).encode(user) }
Kaedah utama saya
postgresConnection := db.NewDb() userRepository := repository.NewUserRepository(postgresConnection) userService := service.NewUserService(userRepository) userHandler := handlers.NewUserHandler(userService) mux := http.NewServeMux() mux.HandleFunc("/users", func(writer http.ResponseWriter, request *http.Request) { if request.Method == "POST" { userHandler.Create(writer, request) } else { http.Error(writer, "Invalid request method", http.StatusMethodNotAllowed) } }) mux.HandleFunc("/users/:id", func(writer http.ResponseWriter, request *http.Request) { if request.Method == "GET" { userHandler.GetById(writer, request) } else { http.Error(writer, "Invalid request method", http.StatusMethodNotAllowed) } }) mux.HandleFunc("/ping", PingHandler) err := http.ListenAndServe(":8080", mux) log.Fatal(err)
/users/:id
更改为 /users/
. mux.HandleFunc("/users/", func(writer http.ResponseWriter, request *http.Request) { id := strings.TrimPrefix(request.URL.Path, "/users/") ... })
NOTA: Terdapat banyak perpustakaan pihak ketiga yang boleh membantu anda menulis pelayan http yang lebih mudah dibaca dan cekap.
Contoh
Atas ialah kandungan terperinci Mengembalikan 'Halaman 404 Tidak Ditemui' di Golang apabila saya menghantar permintaan 'GET'.. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!