1、get请求
query1 := c.Query("test")
query2 := c.DefaultQuery("test","")//带默认值
2、post请求(表单)
test:= c.PostForm("test")
test:= c.DefaultPostForm("test", " ") // 带默认值
3、动态获取参数(表单)
req:= make(map[string]interface{})
for k, v := range c.Request.PostForm {
params[k] = v[0]
}
fmt.Println("req",req)
jsonReq, _ := json.Marshal(req) //map转string
fmt.Println("req",jsonReq)
4、post请求(json)
parms, _ := c.GetRawData()// 定义map或结构体
var req map[string]interface{}
_ = json.Unmarshal(parms, &req)// 反序列化
fmt.Println("req",req)
jsonReq, _ := json.Marshal(req) //map转string
fmt.Println("req",jsonReq)
5、绑定结构体
type User struct {
Name string `from:"name" json:"name"`
Pwd string `from:"pwd" json:"pwd"`
}
func main(){
req := User{}
c.BindJSON(&req)
fmt.Println(req,req.Name)
}
6、动态获取参数(json)
//第一种方式
var parms []byte
if c.Request.Body != nil {
parms, _ = ioutil.ReadAll(c.Request.Body)
c.Request.Body = ioutil.NopCloser(bytes.NewBuffer(parms))
}
fmt.Println("req",string(parms))
//第二种方式
buf := make([]byte, 1024)
n, _ := c.Request.Body.Read(buf)
fmt.Println("parms", string(buf[0:n]))