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)*/



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM