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("( ...
随机推荐
- 测试puppeteer模拟度检测
var puppeteer = require('puppeteer'); const devices = require('puppeteer/DeviceDescriptors'); const ...
- Vue生命周期钩子函数加载顺序的理解
Vue实例有一个完整的生命周期,也就是从开始创建.初始化数据.编译模板.挂载Dom.渲染→更新→渲染.卸载等一系列过程,我们称这是Vue的生命周期.通俗说就是Vue实例从创建到销毁的过程,就是生命周期 ...
- Kotlin中反射
枚举类成员 import kotlin.reflect.full.memberFunctions import kotlin.reflect.full.memberProperties fun mai ...
- Eclipse的断点调试
A:Debug的作用 调试程序 查看程序执行流程 B:如何查看程序执行流程 什么是断点: 就是一个标记,从哪里开始. 如何设置断点: 你想看哪里的程序,你就在那个有效程序的左边双击即可. 在哪里设置断 ...
- Qt编写安防视频监控系统6-面板开关
一.前言 面板开关功能是整个系统最人性化的功能之一,可以对主界面中左侧右侧的各个小面板进行显示和隐藏,当隐藏的时候,另外的同级面板自动拉伸填充,这样就不会显得空洞,直接在每个面板的右上角提供了关闭按钮 ...
- unittest快速装载目前下所有测试用例的方法
import unittest from BeautifulReport import BeautifulReport #导入BeautifulReport if __name__ == '__mai ...
- 值得学习的C语言开源项目和库
收集一些C/C++相关的源码,如有更高效的库,请提醒我 补充上去 C/C++相关交流Q群 1414577 - 1. Webbench Webbench是一个在linux下使用的非常简单的网站压测工具. ...
- vulstudy
vulstudy是专门收集当下流行的漏洞学习平台,并将其制作成docker镜像,方便大家快速搭建环境,节省搭建时间,专注于的漏洞学习上.目前vulstudy包含以下漏洞学习平台: 序号 漏洞平台 包含 ...
- CF1187E Tree Painting
思路: 树形dp,首先使用dp计算以1为根的时候的最大分数,同时得到各个子树i的最大分数dp[i].然后利用前面得到的dp数组分别计算以其他每个点作为根的时候的最大分数. 实现: #include & ...
- 再jsp页面中使用kindeditor 的方法
1.创建一个动态web工程 2.建立一个static库文件夹把CSS,JS样式放进去 3. 复制HTML代码到jsp页面中 4.在相对路径中加上一个"static/" 5.运行截图