目录
一、简介
实战场景: 如何使用 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 \", 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 \", 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\", name, age, string(bodyByts))
- })
-
- // 使用包函数打印
- fmt.Printf("版本: %s \", 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 方法, 添加路由参数和回调, 填充参数
菜鸟实战,持续学习!