package main
import (
"fmt"
"github.com/gogf/gf/frame/g"
"github.com/gogf/gf/net/ghttp"
)
func main() {
s := g.Server()
// 注册路由
s.BindHandler("/", func(r *ghttp.Request) {
// 获取GET请求参数
param1 := r.GetString("param1")
param2 := r.GetInt("param2")
// 获取POST请求参数
postParam := r.PostForm.Get("postParam")
// 输出到客户端
r.Response.Write(fmt.Sprintf("GET参数:param1=%s, param2=%d\n", param1, param2))
r.Response.Write(fmt.Sprintf("POST参数:postParam=%s\n", postParam))
})
// 启动Web服务器
s.Run()
}
在上述示例中,通过r.GetString、r.GetInt和r.PostForm.Get等方法,可以从*ghttp.Request对象中获取GET和POST请求的参数。
请注意,这只是一个基本的演示,实际应用中可能会涉及更复杂的参数验证、绑定结构体等操作。根据具体需求,你可能还需要使用GoFrame提供的验证器(validator)来进行输入验证。
如果你的项目中需要处理JSON格式的请求体,你还可以使用r.GetJson方法来解析JSON参数。
// 获取JSON请求参数
type MyJsonStruct struct {
Field1 string `json:"field1"`
Field2 int `json:"field2"`
}
s.BindHandler("/json", func(r *ghttp.Request) {
var jsonData MyJsonStruct
if err := r.GetJson(&jsonData); err != nil {
r.Response.Write("JSON参数解析失败:" + err.Error())
return
}
r.Response.Write(fmt.Sprintf("JSON参数解析成功:field1=%s, field2=%d\n", jsonData.Field1, jsonData.Field2))
})
这里的MyJsonStruct是一个结构体,用于定义JSON格式的请求参数。r.GetJson(&jsonData)方法将请求体解析为JSON,并将结果存储到jsonData结构体中。
转载请注明出处:http://www.zyzy.cn/article/detail/7815/GoFrame