r.GET("/user/:name", func(c *znet.Context) {
name := c.GetParam("name")
c.String(200, name)
})
c.GetParam("name")
name,ok := c.GetQuery("name")
// 支持设置默认值
c.DefaultQuery("name", "奥特曼") // 如果不存在name参数则返回 奥特曼
// 获取全部 GET 参数值
c.GetAllQueryst()
// 获取数组类型的 GET 参数值,如:name=1&name=2
c.GetQueryArray("name")
// 支持设置默认值
name := c.DefaultPostForm("name", "奥特曼") // 如果不存在name参数则返回 奥特曼
// curl -d "name=isMyName;name=name2" <http://127.0.0.1:3788/>
// ["isMyName","name2"]
nameArray, ok := c.GetPostFormArray("name") // 获取name数组
// ["isMyName"]
names, ok := c.GetPostForm("name") // 获取第一个name值
name := c.PostForm("name")
// curl -d "name[one]=11;name[too]=22" <http://127.0.0.1:3788/>
// map[one:11 too:22]
names, ok := c.GetPostFormMap("name") // 获取name字典
names := c.PostFormMap("name") // 获取name字典
// 获取请求体
raw, err := c.GetDataRaw()
// 解析 multipart form
c.MultipartForm()
// 获取文件上传
file, err := c.FormFile(key)
fileInfo, err := file.Open()
defer fileInfo.Close()
// 文件保存,先通过 FormFile 获取文件对象,dist 为文件路径
err := c.SaveUploadedFile(file, dist)
type Form struct {
Name string `json:"name"`
}
var data Form
c.Bind(&data)
// 绑定并且验证数据,只支持验证不支持处理,如有需要请自行参考 数据验证
rule := c.ValidRule().Required()
err := c.BindValid(&data,map[string]zvalid.Engine{
"name":rule.SetAlias("姓名")
})
更多文档请参考 数据验证
name, err := c.Valid(c.ValidRule(),"参数 Name").Required().HasLetter().String()
if err != nil {
zlog.Debug("验证失败", err)
}
ip := c.GetClientIP()
// 默认情况 X-Forwarded-For 之类是全部可信的,
// 如果你不是使用 nginx 反向代理并且设置了 X-Forwarded-For $proxy_add_x_forwarded_for;
// 那么请自行配置可信代理之后再获取客户端 IP
// 支持配置 IP 与 IP 段
znet.TrustedProxies = []string{"113.65.111.18","113.65.112.1/24"}
ip := c.GetClientIP() // 只信任 IP 113.65.111.18 或 IP 段 113.65.112.1 设置的请求头
c.GetUserAgent() //Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:66.0) Gecko/20100101 Firefox/66.0
c.GetReferer()