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()
}

 

posted @ 2023-03-10 20:19  99号的格调  阅读(177)  评论(0编辑  收藏  举报