请求
[[toc]]
介绍
Goravel 的 contracts/http/Request
方法可以与应用程序处理的当前 HTTP 请求进行交互,以及检索与请求一起提交的输入内容和文件。
与请求交互
http.Context
实例被自动注入到控制器中:
import "github.com/goravel/framework/contracts/http"
facades.Route.Get("/", func(ctx http.Context) {
})
获取请求路径
path := ctx.Request().Path() // /users
获取请求 URL
url := ctx.Request().Url() // /users?name=Goravel
获取完整 URL
url := ctx.Request().FullUrl() // http://**/users?name=Goravel
获取请求方法
method := ctx.Request().Method()
获取请求头
header := ctx.Request().Header('X-Header-Name', 'default')
headers := ctx.Request().Headers()
获取 IP 地址
method := ctx.Request().Ip()
输入
获取链接中的参数
// /users/:id
id := ctx.Request().Input("id")
获取链接传入的参数
// /users?name=goravel
name := ctx.Request().Query("name", "goravel")
获取 form
name := ctx.Request().Form("name", "goravel")
form 绑定 struct
type User struct {
Name string `form:"code" json:"code" binding:"required"`
}
var user User
err := ctx.Request().Bind(&user)
文件
获取上传的文件
file, err := ctx.Request().File("file")
储存上传的文件
file, err := ctx.Request().File("file")
file.Store("./public/test.png")
中断请求
ctx.Request().AbortWithStatus(403)
附加数据
ctx.WithValue("user", "Goravel")
获取数据
ctx.Value("user")