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" ...
随机推荐
- 如何用uniapp+vue开发自定义相机插件——拍照+录像功能
调用手机的相机功能并实现拍照和录像是很多APP与插件都必不可少的一个功能,今天智密科技就来分享一下如何基于uniapp + vue实现自定义相机界面,并且实现: 1: 自定义拍照 2: 自定义录像 3 ...
- python3实战之字幕vtt与字母srt的相互转换
关于 0.本文将介绍一个字幕格式vtt与srt相互转换的py脚本. 1.代码大部分出自: https://www.cnblogs.com/BigJ/p/vtt_srt.html 2.但是自己针对上面的 ...
- ubuntu下载源码clang + llvm+lldb 编译+安装
[本文可能涉及到Ubuntu安装以下工具:] A.g++ B.gcc C.make D.cmake E.clang(10.0.1)(必须) F.llvm(10.0.1)(必须) G.lldb(10.0 ...
- 【LeetCode】Pascal's Triangle II 解题报告
[LeetCode]Pascal's Triangle II 解题报告 标签(空格分隔): LeetCode 题目地址:https://leetcode.com/problems/pascals-tr ...
- Mod Tree(hdu2815)
Mod Tree Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Su ...
- web安全之burpsuite实战
burpsuite暴力破解实战 一.burpsuite的下载及安装使用b站有详细参考 二.burpsuite: 1.熟悉comparer,repeater,intruder模块. (1) comp ...
- 阿里云视觉智能开放平台的人脸1:N搜索的开源替代-Java版(文末赋开源地址)
一.人脸检测相关概念 人脸检测(Face Detection)是检测出图像中人脸所在位置的一项技术,是人脸智能分析应用的核心组成部分,也是最基础的部分.人脸检测方法现在多种多样,常用的技术或工具大 ...
- 在Apache上用mod_wsgi部署Flask (python 3.8, Ubuntu)
因为项目源码用了一些>python3.5的语法糖,但是Ubuntu的mod_wsgi包对应的是python3.5,所以采用从pip安装mod_wsgi的方法 参考: Flask教程 mod_ws ...
- vue 滚动公告
<!-- 滚动公告 --> <div class="textArr"> <p class="slice-enter-active" ...
- 【MySQL作业】sum、max 和 min 聚合函数——美和易思聚合函数应用习题
点击打开所使用到的数据库>>> 1.统计商品最高单价和最低单价. -- 获取所有商品的最高单价和最低单价: select max(unitPrice) 最高单价 , min(unit ...