gin获取全部参数
原文链接:https://blog.csdn.net/keyunq/article/details/82226280
一直都是用结构体接收参数,假如事先不清楚参数名,或者参数是不固定的,就要动态获取。
ctx *gin.Context
form方式的请求:
    ctx.Request.ParseForm()
    for k, v := range ctx.Request.PostForm {
        fmt.Printf("k:%v\n", k)
        fmt.Printf("v:%v\n", v)
    }
json方式的请求:
data, _ := ioutil.ReadAll(ctx.Request.Body)
fmt.Printf("ctx.Request.body: %v", string(data))
1
2
然后从data里解析出来
代码段记录
logging.Debugf("c.Request.Method: %v", ctx.Request.Method)
logging.Debugf("c.Request.ContentType: %v", ctx.ContentType())
logging.Debugf("c.Request.Body: %v", ctx.Request.Body)
ctx.Request.ParseForm()
logging.Debugf("c.Request.Form: %v", ctx.Request.PostForm)
for k, v := range ctx.Request.PostForm {
    logging.Debugf("k:%v\n", k)
    logging.Debugf("v:%v\n", v)
}
logging.Debugf("c.Request.ContentLength: %v", ctx.Request.ContentLength)
data, _ := ioutil.ReadAll(ctx.Request.Body)
logging.Debugf("c.Request.GetBody: %v", string(data))
//第二种:
package main
import (
	"fmt"
	"net/http"
	"github.com/gin-gonic/gin"
)
func main() {
	router := gin.Default()
	router.POST("/events", events)
	router.Run(":5000")
}
func events(c *gin.Context) {
	buf := make([]byte, 1024)
	n, _ := c.Request.Body.Read(buf)
	fmt.Println(string(buf[0:n]))
	resp := map[string]string{"hello": "world"}
	c.JSON(http.StatusOK, resp)
	/*post_gwid := c.PostForm("name")
	fmt.Println(post_gwid)*/
												
											gin获取全部参数的更多相关文章
- golangWEB框架gin学习之获取get参数
		
原文地址:http://www.niu12.com/article/40package main import ( "fmt" "github.com/gin-gonic ...
 - vue-router2.0 组件之间传参及获取动态参数
		
<li v-for=" el in hotLins" > <router-link :to="{path:'details',query: {id:el ...
 - asp.net 正则获取url参数
		
现在有一种场景:Url是数据库里面的,里面带有很多参数,如何获取具体参数的值呢? var uri = new Uri(pageUrl); var queryString = uri.Query; va ...
 - 【转】javascript浏览器参数的操作,js获取浏览器参数
		
原文地址:http://www.haorooms.com/post/js_url_canshu html5修改浏览器地址:http://www.cnblogs.com/JiangXiaoTian/ar ...
 - 学习SpringMVC——如何获取请求参数
		
@RequestParam,你一定见过:@PathVariable,你肯定也知道:@QueryParam,你怎么会不晓得?!还有你熟悉的他(@CookieValue)!她(@ModelAndView) ...
 - 用JS获取地址栏参数的方法
		
采用正则表达式获取地址栏参数: function GetQueryString(name) { var reg = new RegExp("(^|&)"+ nam ...
 - js 获取url参数的值
		
//获取url参数函数function GetQueryString(name){ var reg = new RegExp("(^|&)"+ name +" ...
 - js对特殊字符转义、时间格式化、获取URL参数
		
/*特殊字符转义*/ function replace_html(str) { var str = str.toString().replace(/&/g, "&" ...
 - 用JS获取地址栏参数的方法(超级简单)
		
方法一:采用正则表达式获取地址栏参数:( 强烈推荐,既实用又方便!) function GetQueryString(name) { var reg = new RegExp("( ...
 
随机推荐
- DQL:查询表中数据
			
1. 基础查询 (1) 查询整表 SELECT * FROM 表名; -- 不推荐使用"*",不方便阅读 (2) 选择性查询 SELECT 列名,列名,列名 FROM 表名; (3 ...
 - jquery - 定义二维数组
			
var products = []; products.push({product_id: '1',count: 3},{product_id:'2',count: 6})
 - UML期末复习题——2.2:UML Activity Diagram.
			
第二题:活动图 重要概念: 活动图:一种有助于使工作流和业务过程可视化的图. 绘制要点: 具体方法见:http://www.cnblogs.com/xiaolongbao-lzh/p/4591953. ...
 - JavaScript基础------数组
			
数组1.数组的每个元素都可以保存任意类型数据2.数组长度可以随之调整创建数组的2种方式 1.使用Array构造函数 语法 new Array() 小括号()说明: (1)预先知道数组要保存的项目的数量 ...
 - Flutter 实现简单搜索功能
			
先建立一个主文件,继承StatelessWidget,然后在home属性中加入SearchBarDemo,这是一个自定义的Widget,主要代码都在这个文件中. import 'package:flu ...
 - [PyTorch] Facebook Research - Mask R-CNN Benchmark 的安装与测试
			
Github项目链接:https://github.com/facebookresearch/maskrcnn-benchmark maskrcnn_benchmark 安装步骤: 安装Anacond ...
 - 《精通并发与Netty》学习笔记(14 - 解决TCP粘包拆包(二)Netty自定义协议解决粘包拆包)
			
一.Netty粘包和拆包解决方案 Netty提供了多个解码器,可以进行分包的操作,分别是: * LineBasedFrameDecoder (换行) LineBasedFrameDecoder是回 ...
 - 【AMAD】django-debug-toolbar -- 一个可配置的panel,展示当前request/response的debug信息
			
简介 个人评分 简介 django-debug-toolbar1是一个django开发工具,可以在你开发django页面的时候展示一些当前请求的debug信息:  个人评分 类型 评分 实用性 ⭐️ ...
 - C语言字符串之无重复字符的最长子串
			
题目描述 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 输入: "abcabcbb" 输出: 解释: 因为无重复字符的最长子串是 . 输入: " ...
 - Ubuntu14.04LTS 下配置Tomcat Hadoop eclipse环境
			
下在相关软件: (genju yingjian xuanze xitong weishu,根据系统是32位还是64位选择软件的版本:jdk和eclipse) HADOOP:http://mirrors ...