mirror of
https://github.com/gin-gonic/gin.git
synced 2025-10-21 16:58:08 +08:00
update #1956 ``` package main import ( "fmt" "github.com/gin-gonic/gin" ) type testHeader struct { Rate int `header:"Rate"` Domain string `header:"Domain"` } func main() { r := gin.Default() r.GET("/", func(c *gin.Context) { h := testHeader{} if err := c.ShouldBindHeader(&h); err != nil { c.JSON(200, err) } fmt.Printf("%#v\n", h) c.JSON(200, gin.H{"Rate": h.Rate, "Domain": h.Domain}) }) r.Run() // client // curl -H "rate:300" -H "domain:music" 127.0.0.1:8080/ // output // {"Domain":"music","Rate":300} } ```
19 lines
286 B
Go
19 lines
286 B
Go
package binding
|
|
|
|
import "net/http"
|
|
|
|
type headerBinding struct{}
|
|
|
|
func (headerBinding) Name() string {
|
|
return "header"
|
|
}
|
|
|
|
func (headerBinding) Bind(req *http.Request, obj interface{}) error {
|
|
|
|
if err := mapHeader(obj, req.Header); err != nil {
|
|
return err
|
|
}
|
|
|
|
return validate(obj)
|
|
}
|