gin框架中请求参数的绑定与多数据格式处理
package main import (
"fmt"
"github.com/gin-gonic/gin"
) // gin框架提供给开发者表单实体绑定的功能,可以将表单数据与结构体绑定
type userRegister struct {
UserName string `form:"username" binding:"required"`
Password string `form:"password" binding:"required"`
Phone int `form:"phone" binding:"required"`
} func Register(ctx *gin.Context) {
var userForm = userRegister{} // 127.0.0.1:8000/register?username=马亚南&password=123465&phone=15188945949
/* ShouldBindQuery无论啥请求,都只会绑定查询字符串中的参数
if err := ctx.ShouldBindQuery(&userForm); err != nil {
log.Fatalln("ShouldBindQuery failed")
}
*/
/*
ShouldBind如果是GET请求会绑定查询字符串中的参数,
如果是POST请求,优先绑定form表单或Json字符串中的数据,如果没有也可以绑定查询字符串中的数据
err := ctx.ShouldBind(&userForm)
*/
// ShouldBindJson只能接收json格式的数据,查询字符串参数或form表单数据都不能接收
// Bind开头和ShouldBind开头的区别?
// Bind会在header头中添加400的返回信息,而ShouldBind不会
err := ctx.BindJSON(&userForm)
if err != nil {
fmt.Println(err.Error())
} fmt.Println(userForm) ctx.Writer.Write([]byte(fmt.Sprintf(
"%s:%s:%d", userForm.UserName, userForm.Password, userForm.Phone,
)))
} func main() {
router := gin.Default() router.POST("/register", Register) router.Run(":8000")
}
Bindxxx和ShouldBindxxx的区别?
Bind会在header头中添加400的返回信息,而ShouldBind不会
gin框架中请求参数的绑定与多数据格式处理的更多相关文章
- gin框架中请求路由组的使用
1. gin框架中可以使用路由组来实现对路由的分类 package main import "github.com/gin-gonic/gin" func main() { rou ...
- gin框架中的参数验证
结构体验证 用gin框架的数据验证,可以不用解析数据,减少if else,会简洁许多. 处理请求方法 func structValidator(context *gin.Context) { var ...
- gin框架中的路由
基本路由 gin框架中采用的路由库是基于httrouter做的 地址为:https://github.com/julienschmidt/httprouter httprouter路由库 点击查看代码 ...
- 在gin框架中使用JWT
在gin框架中使用JWT JWT全称JSON Web Token是一种跨域认证解决方案,属于一个开放的标准,它规定了一种Token实现方式,目前多用于前后端分离项目和OAuth2.0业务场景下. 什么 ...
- springmvc请求参数的绑定和获取
请求参数的绑定和获取: 获取页面请求的参数,是javaweb必不可少的一个环节,在struts中,是通过再Action中定义属性,或者Model的方式进行数据绑定和获取.需要提供setter或gett ...
- 16 SpringMVC 的请求参数的绑定与常用注解
1.SpringMVC 绑定请求参数 (1)支持的数据类型 基本类型参数: 包括基本类型和 String 类型POJO 类型参数: 包括实体类,以及关联的实体类数组和集合类型参数: 包括 List 结 ...
- golang gin框架中实现一个简单的不是特别精确的秒级限流器
起因 看了两篇关于golang中限流器的帖子: Gin 开发实践:如何实现限流中间件 常用限流策略--漏桶与令牌桶介绍 我照着用,居然没效果-- 时间有限没有深究.这实在是一个很简单的功能,我的需求是 ...
- go的gin框架从请求中获取参数的方法
前言: go语言的gin框架go里面比较好的一个web框架, github的start数超过了18000.可见此框架的可信度 如何获取请求中的参数 假如有这么一个请求: POST /post/te ...
- gin框架中HTTP请求和参数的解析
1. 方法一: 通用的处理方法---Handle package main import ( "fmt" "github.com/gin-gonic/gin" ...
随机推荐
- LocalDate转换成Date
LocalDate nowLocalDate = LocalDate.now(); Date date = Date.from(nowLocalDate.atStartOfDay(ZoneOffset ...
- 关于编写c++动态库常用的定义
1. 关于 1.1 最近一段时间,写了不少动态库,慢慢的也积累了东西. 1.2 之前一直做Windows的动态库,没有做过Linux和OS X的动态库,太缺乏经验了: 代码缺乏 编译器支持的判断.缺乏 ...
- 【LeetCode】66. Plus One 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 数九 采用进位 日期 [LeetCode] 题目地址 ...
- 【LeetCode】816. Ambiguous Coordinates 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.me/ 题目地址:https://leetcode.com/problems/ambiguous ...
- P1547逆转,然后再见
描述 上届的高三在这个暑假终于要到各个城市奔向他们的大学生活了.奇怪的是学校这次异常阔气,说要用三台车子去载他们上学.上届高三的师兄们异常兴奋--可惜的是临行的时候,学校终于露出它"狰狞&q ...
- 「实用」打造自我感觉非常漂亮的Mac终端
背景 (今天我是一个美妆博主) 突然发现自己使用的iterm2终端样式有些朴素,为了让她看起来花枝招展的,我决定给她打扮打扮.毕竟每天面对她的时间比对象还多-- 效果对比 因为每个人的喜好都不一样,所 ...
- Java基础(八)——IO流1_字节流、字符流
一.概述 1.介绍 I/O是 Input/Output 的缩写,IO流用来处理设备之间的数据传输,如读/写文件,网络通讯等.Java对数据的操作是通过流的方式进行.java.io 包下提供了各种&qu ...
- 第三十一个知识点:Game Hopping证明
第三十一个知识点:Game Hopping证明 关于安全证明, 目前主流的方法有安全归约证明 (由 single game 实现) 和 Game Hopping (由 game sequence 实现 ...
- Limitations of the Lipschitz constant as a defense against adversarial examples
目录 概 主要内容 Huster T., Chiang C. J. and Chadha R. Limitations of the lipschitz constant as a defense a ...
- 向setup.py里添加自定义command
向setup.py里添加自定义command 参考这里 继承distutils.cmd.Command类: class CCleanCommand(distutils.cmd.Command): &q ...