当前位置: 首页 > article >正文

Gin 学习笔记02-参数获取

Gin 参数获取

  • 1、获取url 参数
  • 2、获取动态 url 参数
  • 3、获取 form 表单数据

1、获取url 参数

  • Query()
  • GetQuery()
  • QueryMap()
  • DefaultQuery()
package main

import (
	"fmt"
	"github.com/gin-gonic/gin"
	"net/http"
)

func _query(c *gin.Context) {
	// 1、/query?user=123  获取参数
	//query := c.Query("user")
	//fmt.Println(query)

	// 2、/query?user=123 获取参数 如果参数有值即使为空,flag 也为true, 只有当参数没有 即 /query? flag 为 false
	//query, flag := c.GetQuery("user")
	//c.JSON(http.StatusOK, gin.H{"query": query, "flag": flag})
	//fmt.Println(flag)

	// 3、拿到多个相同的值
	//query := c.QueryArray("user")
	//fmt.Println(query)
	//c.JSON(http.StatusOK, query)

	// 4、
	query := c.QueryMap("user")
	fmt.Println(query)
	c.JSON(http.StatusOK, query)
}

func main() {
	router := gin.Default()

	router.GET("/query", _query)

	router.Run("0.0.0.0:9000")
}

2、获取动态 url 参数

  • c.Params()
package main

import (
	"fmt"
	"github.com/gin-gonic/gin"
	"net/http"
)

func _params(c *gin.Context) {
	id := c.Param("id")
	fmt.Println(id)
	c.JSON(http.StatusOK, gin.H{"id": id})
}

func _paramsId(c *gin.Context) {
	id := c.Param("id")
	key := c.Param("key")
	c.JSON(http.StatusOK, gin.H{"id": id, "key": key})
	fmt.Println(id)
	fmt.Println(key)
}

func main() {
	router := gin.Default()

	router.GET("/params/:id", _params)

	router.GET("/params/:id/:key", _paramsId)

	router.Run(":9000")
}

3、获取 form 表单数据

  • PostForm()
  • PostFormArray()
  • MultipartForm()
  • DefaultPostForm()
  • GetRawData()
package main

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

func _postForm(c *gin.Context) {
	//name := c.PostForm("name")
	//age := c.PostForm("age")
	//fmt.Println("name")
	//fmt.Println("age")
	//c.JSON(http.StatusOK, gin.H{"name": name, "age": age})

	//name := c.PostFormArray("name")
	//age := c.PostFormArray("age")
	//ids := c.PostFormArray("ids")
	 如果用户没有传,则直接使用默认值,如果传了 就使用 用户传的
	//gender := c.DefaultPostForm("gender", "男")
	
	//form, err := c.MultipartForm()
	//if err != nil {
	//	c.JSON(http.StatusOK, gin.H{"message": "获取参数失败"})
	//	return
	//}
	//fmt.Println(form)
	//c.JSON(http.StatusOK, form)
	//fmt.Println(ids)
	//c.JSON(http.StatusOK, gin.H{"name": name, "age": age, "ids": ids, "gender": gender})

	fmt.Println(c.GetRawData())
}

func main() {
	router := gin.Default()

	router.POST("/postForm", _postForm)

	router.Run(":9000")
}

// 1、获取 query 参数
// - Query()
// - QueryArray()
// - QueryMap()
// - GetQuery()

// 2、获取 动态 参数
// - Param()

// 3、获取 表单 参数
// - PostForm()
// - PostFormArray()
// - DefaultPostForm()
// - MultipartForm()

// 4、获取 原始参数
// - getRawData()


http://www.kler.cn/a/145706.html

相关文章:

  • 特征选择(机器学习)
  • Ubuntu如何安装redis服务?
  • 如何在 Pytest 中使用命令行界面和标记运行测试
  • < OS 有关 > 阿里云:轻量应用服务器 的使用 安装 Tailscale 后DNS 出错, 修复并替换 apt 数据源
  • logback日志自定义占位符
  • SQL刷题快速入门(三)
  • 定制手机套餐---python序列
  • 【Spring】Spring事务失效问题
  • MySQL进阶_10.锁
  • 《已解决: ImportError: Keras requires TensorFlow 2.2 or higher 问题》
  • Docker部署Nacos
  • ubuntu22.04安装swagboot遇到的问题
  • 【2023.11.26】Mybatis自定义映射规则学习
  • 手机APP-MCP走蓝牙无线遥控智能安全帽~执法记录仪~拍照录像,并可做基础的配置,例如修改服务器IP以及配置WiFi等
  • 开源博客项目Blog .NET Core源码学习(7:FluentValidation使用浅析)
  • 使用 Raspberry Pi、Golang 和 HERE XYZ 制作实时地图
  • 2023亚太杯数学建模思路 - 案例:粒子群算法
  • 为什么PCB板大多数都是绿色的?
  • Android获取原始图片Bitmap的宽高大小尺寸,Kotlin
  • Spark的通用运行流程与Spark YARN Cluster 模式的运行流程
  • 粒子群算法Particle Swarm Optimization (PSO)的定义,应用优点和缺点的总结!!
  • 【Jenkins】jenkins发送邮件报错:Not sent to the following valid addresses:
  • 线程的状态以及状态转移
  • Docker 部署 Nacos(单机),利用 MySQL 数据库存储配置信息
  • jpa创建自定义UUID,且符合IETF RFC 4122,不会出警告
  • 原生javascript实现放大镜效果