七叶笔记 » golang编程 » gin 路由获取get post参数

gin 路由获取get post参数

获取get参数

 package main

import "github.com/gin-gonic/gin"
func main() {
r := gin.Default()
r.GET("/", func(context *gin.Context) {
query:=context.Query("query")
context.Writer.WriteString(query)
})
r.Run(":8000")
}
  

浏览器访问:请求数据

同时我们的get请求还支持设置在前端没有传参的时候绑定一个默认值

 query:=context.DefaultQuery("query","请求数据")  

获取post参数

form_data的形式:

 package main

import (
"github.com/gin-gonic/gin"
)
func main() {
r := gin.Default()
r.POST("/", func(context *gin.Context) {
query:=context.PostForm("query")
context.Writer.WriteString(query)
})
r.Run(":8000")
}
  

测试结果:

除了form_data和binary的方式,其他的基本都是取body

json方式:

 package main

import (
"fmt"
"github.com/gin-gonic/gin"
"io/ioutil"
)
func main() {
r := gin.Default()
r.POST("/", func(context *gin.Context) {
body,err:=ioutil.ReadAll(context.Request.Body)
if err!=nil{
fmt.Println("读取body失败")
}
context.Writer.WriteString(string(body))
})
r.Run(":8000")
}
  

测试结果:

除此之外我们还可以把请求参数绑定到一个结构体上面去

 package main

import (
"github.com/gin-gonic/gin"
)

type User struct {
UserName string `json:"user_name" xml:"user_name"`
Password string `json:"password" xml:"password"`
}

func main() {
r := gin.Default()
r.POST("/", func(context *gin.Context) {
var data User
//json绑定方式
err := context.ShouldBindJSON(&data)
//xml绑定方式
err = context.ShouldBindXML(&data)
context.Writer.WriteString("ok")
})
r.Run(":8000")
}
  

获取路径的参数:

 package main

import (
"github.com/gin-gonic/gin"
)


func main() {
r := gin.Default()
r.GET("/user/:query", func(context *gin.Context) {
query:=context.Param("query")
context.Writer.WriteString(query)
})
r.Run(":8000")
}
  

相关文章