1. 方法一: 通用的处理方法---Handle

package main

import (
"fmt"
"github.com/gin-gonic/gin"
"log"
) func main() {
router := gin.Default() router.Handle("GET","/hello", func(ctx *gin.Context) {
fmt.Println(ctx.FullPath())
//name := ctx.Query("name")
name := ctx.DefaultQuery("name", "默认值")
fmt.Println("name =", name)
ctx.Writer.Write([]byte("hello " + name))
}) // post: /login?name=zhangsna&pwd=123456
router.Handle("POST", "/login", func(ctx *gin.Context) {
// 接收前端传递的json数据
/* 方法一
json := make(map[string]interface{})
ctx.BindJSON(&json)
fmt.Println(json)
*/ // 方法二
var userLogin UserLogin
ctx.Bind(&userLogin)
fmt.Println(userLogin) fmt.Println(ctx.FullPath())
name := ctx.DefaultPostForm("name", "张三")
pwd := ctx.DefaultPostForm("pwd", "789789")
ctx.Writer.Write([]byte(name + ":" + pwd))
}) if err := router.Run(":8000"); err != nil {
log.Fatalln(err.Error())
}
} type UserLogin struct {
Name string `json:"name"`
Password string `json:"pwd"`
}

  

2.  分类处理

package main

import (
"fmt"
"github.com/gin-gonic/gin"
) func Hello(ctx *gin.Context) {
// GET请求
fmt.Println(ctx.FullPath(), ctx.ClientIP())
fmt.Println(ctx.Query("name"))
ctx.Writer.Write([]byte("hello " + ctx.Query("name")))
}
type Login struct {
Name string `json:"name"`
Password string `json:"pwd"`
}
func UserLogin(ctx *gin.Context) {
// POST请求
fmt.Println(ctx.FullPath(), ctx.ClientIP())
var login Login
ctx.BindJSON(&login)
fmt.Println(login)
ctx.Writer.Write([]byte(login.Name + ":" + login.Password))
}
func UserDelete(ctx *gin.Context) {
id := ctx.Param("id")
fmt.Println("Param_id:", id)
ctx.Writer.Write([]byte("delete user id:" + id))
} func main() {
router := gin.Default() router.GET("/hello", Hello)
router.POST("/login", UserLogin)
router.DELETE("/user/:id", UserDelete) router.Run(":8000")
}

  

gin框架中HTTP请求和参数的解析的更多相关文章

  1. gin框架中的参数验证

    结构体验证 用gin框架的数据验证,可以不用解析数据,减少if else,会简洁许多. 处理请求方法 func structValidator(context *gin.Context) { var ...

  2. gin框架中请求路由组的使用

    1. gin框架中可以使用路由组来实现对路由的分类 package main import "github.com/gin-gonic/gin" func main() { rou ...

  3. Gin框架04:趣谈参数绑定与校验

    导读 在第二节,我们学习了Gin框架的路由定义与参数接收,今天应一位同学的要求,来讲解一下参数的绑定与校验. 为什么校验参数? 本不必抛出这个问题的,但顾及到初出茅庐的同学,这里解释一下. 假设做一个 ...

  4. 在gin框架中使用JWT

    在gin框架中使用JWT JWT全称JSON Web Token是一种跨域认证解决方案,属于一个开放的标准,它规定了一种Token实现方式,目前多用于前后端分离项目和OAuth2.0业务场景下. 什么 ...

  5. gin框架中的路由

    基本路由 gin框架中采用的路由库是基于httrouter做的 地址为:https://github.com/julienschmidt/httprouter httprouter路由库 点击查看代码 ...

  6. golang gin框架中实现一个简单的不是特别精确的秒级限流器

    起因 看了两篇关于golang中限流器的帖子: Gin 开发实践:如何实现限流中间件 常用限流策略--漏桶与令牌桶介绍 我照着用,居然没效果-- 时间有限没有深究.这实在是一个很简单的功能,我的需求是 ...

  7. laravel框架中Job和事件event的解析

    本篇文章给大家带来的内容是关于laravel框架中Job和事件event的解析,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 在做项目的时候,一直对Job和Event有个疑惑.感觉两 ...

  8. gin框架中请求参数的绑定与多数据格式处理

    package main import ( "fmt" "github.com/gin-gonic/gin" ) // gin框架提供给开发者表单实体绑定的功能 ...

  9. Gin框架中文文档

    Gin 是一个 go 写的 web 框架,具有高性能的优点.官方地址:https://github.com/gin-gonic/gin 带目录请移步 http://xf.shuangdeyu.com/ ...

随机推荐

  1. JAVA直接连接Redis

    引入maven <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</ ...

  2. SpringBoot项目存放微信的验证文件,把微信的验证文件放在根目录下

    我们做微信开发的时候,有时候会有如下要求 用户在网页授权页同意授权给公众号后,微信会将授权数据传给一个回调页面,回调页面需在此域名下,以确保安全可靠. 下载文件 将以下文件上传至填写域名或路径指向的w ...

  3. UDP&串口调试助手用法(5)

    note 提供安装包 基于win10开发 已通过win10测试,windows其他平台,没有测试 日志 2021-09-18 1.修复计算校验和错误的现象 2.屏蔽不计算校验和位置的REG验证(后期更 ...

  4. 【LeetCode】941. Valid Mountain Array 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 日期 题目地址:https://leetcode.c ...

  5. 【LeetCode】662. Maximum Width of Binary Tree 解题报告(Python)

    [LeetCode]662. Maximum Width of Binary Tree 解题报告(Python) 标签(空格分隔): LeetCode 题目地址:https://leetcode.co ...

  6. 【LeetCode】228. Summary Ranges 解题报告(Python)

    [LeetCode]228. Summary Ranges 解题报告(Python) 标签(空格分隔): LeetCode 题目地址:https://leetcode.com/problems/sum ...

  7. CAS学习笔记一:CAS 授权服务器简易搭建

    什么是CAS CAS是Central Authentication Service的缩写,中央认证服务,一种独立开放指令协议.CAS 是 耶鲁大学(Yale University)发起的一个开源项目, ...

  8. HDU 1052:Tian Ji -- The Horse Racing(贪心)

    Tian Ji -- The Horse Racing Time Limit: 2000/1000 MS (Java/Others)  Memory Limit: 65536/32768 K (Jav ...

  9. 深度学习中常见的 Normlization 及权重初始化相关知识(原理及公式推导)

    Batch Normlization(BN) 为什么要进行 BN 防止深度神经网络,每一层得参数更新会导致上层的输入数据发生变化,通过层层叠加,高层的输入分布变化会十分剧烈,这就使得高层需要不断去重新 ...

  10. 高可用k8s集群搭建

    虚拟机选择 Win10 Hyper-V 总体架构 三个master,三个node master的组件 etcd kube-apiserver kube-controller-manager kube- ...