基於Gin框架的web後端開發(八): Gin框架的請求重定向

LiberHome發表於2022-06-16

重定向分為外部重定向和內部重定向,也可以分為永久重定向和臨時重定向。

外部重定向

可以使用Redirect方法來實現,舉個例子,如果我們想永久重定向到外部的百度:

package main

import (
    "github.com/gin-gonic/gin"
    "net/http"
)

func main() {
    r := gin.Default()
    r.GET("/index", func(c *gin.Context) {
        c.Redirect(http.StatusMovedPermanently, "https://www.baidu.com")
    })
    r.Run(":9090")
}

執行結果就直接重定向到外部的百度了,我們發現


內部重定向

舉個例子,如果想要從/a內部跳到/b,可以這樣寫:

package main

import (
    "github.com/gin-gonic/gin"
    "net/http"
)

func main() {
    r := gin.Default()
    r.GET("/index", func(c *gin.Context) {
        c.Redirect(http.StatusMovedPermanently, "https://www.baidu.com")
    })
    r.GET("/a", func(c *gin.Context) {
        //跳轉到/b對應的路由處理函式
        c.Request.URL.Path = "/b"
        r.HandleContext(c)
    })
    r.GET("/b", func(c *gin.Context) {
        c.JSON(http.StatusOK, gin.H{
            "message": "b",
        })
    })
    r.Run(":9090")
}

結果如下:


參考: bilibili

相關文章