Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GetUint and GetUint64 wrong return #3927

Open
bayaderpack opened this issue Apr 18, 2024 · 1 comment
Open

GetUint and GetUint64 wrong return #3927

bayaderpack opened this issue Apr 18, 2024 · 1 comment

Comments

@bayaderpack
Copy link

bayaderpack commented Apr 18, 2024

Description

I'm trying to use GetUint64 and GetUint but it returns 0

How to reproduce

package main

import (
	"github.com/gin-gonic/gin"
)

func main() {
	g := gin.Default()
	g.GET("/hello", func(c *gin.Context) {
		c.String(200, "Your ID is %d %d", c.GetUint64("user"), c.GetUint("user"))
	})
	g.Run(":9000")
}

Expectations

$ curl http://localhost:9000/hello?user=1
Your ID is 1 1

Actual result

$ curl -i http://localhost:9000/hello?user=1
Your ID is 0 0

Environment

  • go version: 1.21
  • gin version (or commit ref): 1.9.1
  • operating system: Windows
@RedCrazyGhost
Copy link
Contributor

There is a problem with your usage, you should use BindQuery or ShouldBindQuery.

package main

import (
	"net/http"
	
	"github.com/gin-gonic/gin"
)

func main() {
	g := gin.Default()
	g.GET("/hello", func(c *gin.Context) {
		m := make(map[string]string)
		if err := c.BindQuery(&m); err != nil {
			c.String(http.StatusInternalServerError,"input data have error: %v",err)
			return 
		}
		c.String(http.StatusOK,"input data: %v",m["user"])
	})
	g.Run(":9000")
}

If you use c.Get, you need to use your c.Set in context

package main

import (
	"net/http"
	
	"github.com/gin-gonic/gin"
)

func main() {
	g := gin.Default()
	g.GET("/hello", func(c *gin.Context) {
		c.Set("user",999)
		c.String(http.StatusOK,"user id: %d",c.GetInt("user"))
	})
	g.Run(":9000")
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants