mirror of https://github.com/gin-gonic/gin.git
7e9f808e02
Here is the code that can report an error ```go package main import ( "fmt" "github.com/gin-gonic/gin" "io" "net/http" "os" "time" ) type header struct { Duration time.Duration `header:"duration"` CreateTime time.Time `header:"createTime" time_format:"unix"` } func needFix1() { g := gin.Default() g.GET("/", func(c *gin.Context) { h := header{} err := c.ShouldBindHeader(&h) if err != nil { c.JSON(500, fmt.Sprintf("fail:%s\n", err)) return } c.JSON(200, h) }) g.Run(":8081") } func needFix2() { g := gin.Default() g.GET("/", func(c *gin.Context) { h := header{} err := c.ShouldBindHeader(&h) if err != nil { c.JSON(500, fmt.Sprintf("fail:%s\n", err)) return } c.JSON(200, h) }) g.Run(":8082") } func sendNeedFix1() { // send to needFix1 sendBadData("http://127.0.0.1:8081", "duration") } func sendNeedFix2() { // send to needFix2 sendBadData("http://127.0.0.1:8082", "createTime") } func sendBadData(url, key string) { req, err := http.NewRequest("GET", "http://127.0.0.1:8081", nil) if err != nil { fmt.Printf("err:%s\n", err) return } // Only the key and no value can cause an error req.Header.Add(key, "") rsp, err := http.DefaultClient.Do(req) if err != nil { return } io.Copy(os.Stdout, rsp.Body) rsp.Body.Close() } func main() { go needFix1() go needFix2() time.Sleep(time.Second / 1000 * 200) // 200ms sendNeedFix1() sendNeedFix2() } ``` |
||
---|---|---|
.. | ||
binding.go | ||
binding_test.go | ||
default_validator.go | ||
form.go | ||
form_mapping.go | ||
form_mapping_benchmark_test.go | ||
form_mapping_test.go | ||
header.go | ||
json.go | ||
json_test.go | ||
msgpack.go | ||
msgpack_test.go | ||
multipart_form_mapping.go | ||
multipart_form_mapping_test.go | ||
protobuf.go | ||
query.go | ||
uri.go | ||
validate_test.go | ||
xml.go | ||
xml_test.go | ||
yaml.go | ||
yaml_test.go |