重定向分为外部重定向和内部重定向,也可以分为永久重定向和临时重定向。
外部重定向
可以使用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
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。