原文地址:http://www.niu12.com/article/40
package main import (
"fmt"
"github.com/gin-gonic/gin"
"net/http"
) func getRouteParams(c *gin.Context) {
// 获取路由参数为name的值
// http://127.0.0.1:8888/route/card 输出 card
name := c.Param("name")
c.String(http.StatusOK, name)
} func getRoutePregParams(c *gin.Context) {

// 获取路由参数为name的值 和job的值 job为无限长,忽略/,并且包含前一个/
// http://127.0.0.1:8888/route/card/
// 输出 card / // http://127.0.0.1:8888/route/card/name
// 输出 card /name // http://127.0.0.1:8888/route/card/name/hello
// 输出 card /name/hello name := c.Param("name")
job := c.Param("job")
c.String(http.StatusOK, name + " " + job)
} /**
获取路由参数
*/
func getParams(c *gin.Context) {
    
// http://127.0.0.1:8888/?name=card
// 输出 card card 程序员 // http://127.0.0.1:8888/?name=card&job=coder
// 输出 card card coder // 当有多个参数相同时,取第一个value
// http://127.0.0.1:8888/?name=card&job=coder&name=周起
// 输出 card card coder // http://127.0.0.1:8888/?name=周起&job=coder&name=card
// 输出 周起 周起 coder // c.Query() 等同于 c.Request.URL.Query().Get()
name := c.Query("name")
name2 := c.Request.URL.Query().Get("name") // 设置默认参数,如果job参数不存在,默认为程序员
name3 := c.DefaultQuery("job", "程序员")
c.String(http.StatusOK, name + " " + name2 + " " + name3)
} func getRepeatParams(c *gin.Context) {
name := c.QueryArray("name")
// http://127.0.0.1:8888/repeat?name=周起&name=card
// 输出 name:[周起 card], type:[]string
fmt.Printf("name:%v, type:%T", name, name) // http://127.0.0.1:8888/repeat?job[a]=周起&job[b]=card
// 输出 job:map[a:周起 b:card], type:map[string]string
job := c.QueryMap("job")
fmt.Printf("job:%v, type:%T", job, job)
} func main() {
router := gin.Default() // 获取路由参数
router.GET("/route/:name", getRouteParams) // 获取正则路由参数
router.GET("/route/:name/*job", getRoutePregParams) // 获取queryString
router.GET("/", getParams)
// 获取同名参数
router.GET("/repeat", getRepeatParams)
router.Run(":8888")
}

golangWEB框架gin学习之获取get参数的更多相关文章

  1. golangWEB框架gin学习之获取post参数

    原文地址:http://www.niu12.com/article/41 package main import ( "fmt" "github.com/gin-goni ...

  2. golangWEB框架gin学习之路由群组

    原文地址:http://www.niu12.com/article/42 package main import ( "github.com/gin-gonic/gin" &quo ...

  3. JavaScript学习之获取URL参数

    最近看了几道面试题,其中有一道就是关于写一个方法来获取浏览器地址栏URL查询部分的字段内容.虽然之前看过相关的东西,但感觉有点模糊,所以就又全面的学习一遍,谨以此文记之! 准备知识 在JavaScri ...

  4. Mybatis 学习---${ }与#{ }获取输入参数的区别、Foreach的用法

    一.Mybatis中用#{}和${}获取输入参数的区别 1.“#{}“和“${}”都可以从接口输入中的map对象或者pojo对象中获取输入的参数值.例如 <mapper namespace=&q ...

  5. django学习-5.获取url参数和name的作用

    1.前言 假如我们要打开这两个博客园地址:[https://www.cnblogs.com/xiamen-momo/archive/2020/11.html].[https://www.cnblogs ...

  6. Java获取函数参数名称

    原理 编译之后的class文件默认是不带有参数名称信息的,使用 IDE 时,反编译jar包得到的源代码函数参数名称是 arg0,arg1......这种形式,这是因为编译 jar 包的时候没有把符号表 ...

  7. go的gin框架从请求中获取参数的方法

    前言: go语言的gin框架go里面比较好的一个web框架, github的start数超过了18000.可见此框架的可信度 如何获取请求中的参数 假如有这么一个请求: POST   /post/te ...

  8. 学习SpringMVC——如何获取请求参数

    @RequestParam,你一定见过:@PathVariable,你肯定也知道:@QueryParam,你怎么会不晓得?!还有你熟悉的他(@CookieValue)!她(@ModelAndView) ...

  9. springMvc源码学习之:spirngMVC获取请求参数的方法2

    @RequestParam,你一定见过:@PathVariable,你肯定也知道:@QueryParam,你怎么会不晓得?!还有你熟悉的他 (@CookieValue)!她(@ModelAndView ...

随机推荐

  1. [bzoj1798][Ahoi2009]Seq——线段树+多重标记下传

    题意 请你写一个数据结构,支持: 子序列同加 子序列同乘 统计子序列和 题目 线段树裸题,但对于我这种初学者还是非常难写. 我们维护两个标记,一个是在这个节点上作过的所有乘法操作,一个是加法操作,始终 ...

  2. thinkphp 导入微信小程序加密解密库

    第三方类库 第三方类库指除了 ThinkPHP 框架.应用项目类库之外的其他类库,一般由第三方系统或产品提供,如 Smarty.Zend 等系统的类库等. 前面使用自动加载或 import 方法导入的 ...

  3. django执行sql

    http://docs.30c.org/djangobook2/chapter10/ def first_names(self, last_name): cursor = connection.cur ...

  4. yum软件包安装

    使用yum安装软件 配置yum配置文件 cd /etc/yum.repos.d/ vim rhel7.repo [rhel7-source] name=rhel7-source baseurl=fil ...

  5. 入园的第一篇--where、where

    这篇是入园的第一篇随便,后面我会将自己几年前写的博文都转到这里.哎,其实说到博文的事情,我就很郁闷,甚至有些恼火,后面我会详细说说这中间的过程,也许能帮助某些人避免遇到类似的事情.突然想起<西游 ...

  6. 带你入门代理模式/SpringAop的运行机制

    SpringAop 是spring框架中最重要的一项功能之一,同时也是企业级开发记录事物日志等不可或缺的一部分,如果说你的系统需要记录用户访问接口的操作,那SpringAop是很完美的了,当然,拦截器 ...

  7. 【SQL】事务

    1.事务的开始结束: START TRANSACTION :标记事务开始 COMMIT :标记事务成功结束 ROLLBACK :标记事务夭折 2.设定事务只读.读写性质: SET TRANSACTIO ...

  8. 什么时候该用 Apache Kafka

    rabbitMQ kafka https://coyee.com/article/12091-understanding-when-to-use-rabbitmq-or-apache-kafka Ap ...

  9. 在.NET4.5项目中添加HttpClient引用的办法

    一. 创建新项目 1. 打开  Microsoft Visual Studio 201 0,然后从 “ 文件 ” 菜单中选择 “ 新建项目 ” .在模板列表中,选择  Visual C#.在该区域下面 ...

  10. QT各个版本的下载的地址

    http://download.qt.io/archive/qt/ USE [master]GO/****** Object:  Database [BookDB]    Script Date: 0 ...