首頁 >後端開發 >Golang >當我發送'GET”請求時,在 Golang 中返回'404 頁面未找到”

當我發送'GET”請求時,在 Golang 中返回'404 頁面未找到”

WBOY
WBOY轉載
2024-02-12 22:54:08958瀏覽

当我发送“GET”请求时,在 Golang 中返回“404 页面未找到”

php小編百草在介紹Golang中的請求處理時,強調了當發送GET請求時,可能會遇到的404頁面未找到的問題。 Golang作為一種高效且強大的程式語言,可以透過適當的處理來解決這個問題,確保使用者能夠得到正確的回應。在編寫程式碼時,需要注意使用適當的錯誤處理機制,以及正確的路徑和路由配置,以避免404錯誤的發生。這樣,使用者就能夠享受到更好的網頁瀏覽體驗。

問題內容

我是 golang 新手。我嘗試使用 golang 編寫一個 api 伺服器,而不使用任何 http 框架(echo、gin 等)。我寫了“post”端點,但我的“get”端點沒有回應。我嘗試編寫另一個名為“ping”的獲取端點,它正在工作。我的捲髮

curl --location 'http://localhost:8080/users/45254424-5be1-487d-9131-bad3b2f7791c'

我的處理程序

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)
}

我的主要方法

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/")

     ...
})

注意:有許多第三方函式庫可以幫助您編寫更具可讀性和更有效率的 http 伺服器。

範例

以上是當我發送'GET”請求時,在 Golang 中返回'404 頁面未找到”的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:stackoverflow.com。如有侵權,請聯絡admin@php.cn刪除