首頁 >後端開發 >Golang >無法使用 Gin/GoLang 將 POST 請求變更為 GET 請求

無法使用 Gin/GoLang 將 POST 請求變更為 GET 請求

PHPz
PHPz轉載
2024-02-10 19:45:08591瀏覽

无法使用 Gin/GoLang 将 POST 请求更改为 GET 请求

php小編百草今天要為大家介紹一個常見的問題,那就是在使用Gin/GoLang框架時,如何將POST請求更改為GET請求。有時我們可能需要將POST請求轉換為GET請求,例如在某些特定情況下或為了方便測試。不過,要實現這個功能並不是那麼簡單,需要一些技巧和程式碼調整。接下來,我們將一步一步為大家解答這個問題,幫助大家順利完成這個轉換。

問題內容

我似乎無法在 gin 框架中用 get 方法更改 post 方法。當我收到請求時,我想檢查它的憑證,如果有效,則重定向到另一個具有 get 端點的頁面。每當我使用 c.request.method="get" 時,它似乎只更改當前端點的請求,但重定向的仍然具有原始方法,即 post 方法。

程式碼:

auth.GET("/sign-in", func(c *gin.Context) {
    c.File("../../html/index.html")
})

auth.POST("/sign-in", func(c *gin.Context) {
    c.Request.Method = "GET"
    c.Redirect(http.StatusTemporaryRedirect, "/profile/:pid")
})

code 307請求原本是post請求,由端點本身改為get

執行 c.request.method="get" 沒有幫助。也找不到答案。知道如何改變這種行為嗎?建立新請求是唯一的解決方案嗎?

解決方法

307狀態代碼文件說:

原始請求的方法和正文被重複用來執行重定向的請求。如果您希望將使用的方法改為 GET,請改用 303 See Other。

因此,如果將 http.StatusTemporaryRedirect 更改為 http.StatusSeeOther ,則無需更改原始請求方法即可工作。

以上是無法使用 Gin/GoLang 將 POST 請求變更為 GET 請求的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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