Gin学习笔记--HTTP请求与参数解析
engine 中可以直接进行HTTP请求的处理,在engine中使用Handle方法进行http请求的处理。handle方法包含三个参数
httpMethod:第一个参数表示处理的HTTP的请求类型,是GET,POST等8种
relativePath:第二个参数表示要解析的接口
handlers:第三个参数是处理对应的请求的代码的定义
实例:处理GET请求和POST请求
package main import ( "fmt" "github.com/gin-gonic/gin" ) func main() { engine := gin.Default() engine.Handle("GET", "/kol", func(context *gin.Context) { fmt.Println(context.FullPath()) name := context.DefaultQuery("name", "default value") fmt.Println(name) context.Writer.Write([]byte("Hello," + name)) }) engine.Handle("POST", "job", func(ctx *gin.Context) { fmt.Println(ctx.FullPath()) username := ctx.PostForm("username") possword := ctx.PostForm("possword") fmt.Println(username) fmt.Println(possword) ctx.Writer.Write([]byte(username + "LOGIN")) }) engine.Run() }
Context是gin框架中封装的一个结构体,该结构体可以提供我们操作请求,处理请求,获取数据等相关操作,通常称之为上下文对象
可以通过context.Query和context.DefaultQuery()获取GET请求携带的参数
可以通过context.Wrriter.Write向请求发起端返回数据
Post请求是以form表单的方式提交数据的,可以通过context.PostForm()获取表单中提交的数据字段
其他类型的HTTP请求也可以通过Handle方法处理对应的请求
分类处理
除了engine中包含的通用通过的处理方法以外,engine还可以按类型进行直接解析。engine包含get方法,post方法,delete方法等与http请求类型对应的方法。
package main import ( "fmt" "github.com/gin-gonic/gin" ) func main() { engine := gin.Default() engine.GET("/kol", func(ctx *gin.Context) { fmt.Println(ctx.FullPath()) name := ctx.Query("name") fmt.Println(name) ctx.Writer.Write([]byte("hello," + name)) }) engine.POST("/login",func(ctx *gin.Context){ fmt.Println(ctx.FullPath()) username,exist := ctx.GetPostForm("username") if exist{ fmt.Println(username) } possword,exists := ctx.GetPostForm("possword") if exists{ fmt.Println(possword) } ctx.Writer.Write([]byte("hello,"+username)) }) engine.Run() }