一、简介
实战场景: 如何使用 gin 获取 GET 和 POST 的请求参数
二、知识点
- gin 路由
- http 状态码
- 获取 GET 请求参数
- 获取 POST 请求参数
- 获取 POST Form 请求参数
三、菜鸟实战
马上安排!
1、创建 go文件
package main
// 导入包
import (
"bytes"
"fmt"
"github.com/gin-gonic/gin"
"io/ioutil"
"net/http"
"runtime"
)
// 主函数
func main() {
// 使用内置函数打印
println("Hello", "菜鸟实战")
println("实战场景: ", "gin 如何获取 GET 请求参数")
// 初始化
r := gin.Default()
// GET 方法, 添加路由参数和回调
r.GET("/g", func(c *gin.Context) {
name := c.Query("name")
// 默认参数
age := c.DefaultQuery("age", "18")
// 返回的 code 和 对应的参数星系
c.String(http.StatusOK, "%s - %s \n", name, age)
})
// POST 方法, 添加路由参数和回调
r.POST("/p", func(c *gin.Context) {
bodyByts, err := ioutil.ReadAll(c.Request.Body)
if err != nil {
// 返回错误信息
c.String(http.StatusBadRequest, err.Error())
// 执行退出
c.Abort()
}
// 返回的 code 和 对应的参数星系
c.String(http.StatusOK, "%s \n", string(bodyByts))
})
// POST 方法, 添加路由参数和回调, 填充参数
r.POST("/p1", func(c *gin.Context) {
bodyByts, err := ioutil.ReadAll(c.Request.Body)
if err != nil {
// 返回错误信息
c.String(http.StatusBadRequest, err.Error())
// 执行退出
c.Abort()
}
c.Request.Body = ioutil.NopCloser(bytes.NewBuffer(bodyByts))
name := c.PostForm("name")
age := c.DefaultPostForm("age", "18")
// 返回的 code 和 对应的参数星系
c.String(http.StatusOK, "%s,%s,%s\n", name, age, string(bodyByts))
})
// 使用包函数打印
fmt.Printf("版本: %s \n", runtime.Version())
// 启动框架程序, 默认 8080 端口
r.Run()
}
// curl 验证方式
// g
// curl -X GET "http://127.0.0.1:8080/g?name=kitty"
// curl -X GET "http://127.0.0.1:8080/g?name=kitty&age=21"
// p
// curl -X POST "http://127.0.0.1:8080/p" -d '{"name":"你好, 菜鸟实战"}'
// p1
// curl -X POST "http://127.0.0.1:8080/p1" -d 'name=bob'
// curl -X POST "http://127.0.0.1:8080/p1" -d 'name=bob&age=17'
2、运行结果
Hello 菜鸟实战
实战场景: gin 如何获取 GET 和 POST 的请求参数
[GIN-debug] Listening and serving HTTP on :8080
GET 方法, 添加路由参数和回调
POST 方法, json格式
POST 方法, 添加路由参数和回调, 填充参数
菜鸟实战,持续学习!
版权归原作者 菜鸟实战 所有, 如有侵权,请联系我们删除。