guonaihong
7e9f808e02
fix empty value error
...
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()
}
```
2019-12-06 15:49:43 +08:00
thinkerou
7c21e04f62
fix maxParams bug ( #2166 )
2019-12-04 07:56:01 +08:00
Victor Castell
77b8344169
Add project to README ( #2165 )
...
Add Dkron as user of Gin in the README
2019-12-02 20:59:56 +08:00
thinkerou
3abc96e3cd
tree: sync part httprouter codes and reduce if/else ( #2163 )
2019-12-01 19:53:03 +08:00
Bo-Yi Wu
3957f6bb4b
docs(benchmarks): for gin v1.5 ( #2153 )
2019-11-29 13:07:19 +08:00
thinkerou
d5f12ac6d7
use http method constant ( #2155 )
...
* use http method constant
* fix typo
2019-11-29 07:50:49 +08:00
Bo-Yi Wu
352d69c71f
chore(performance): Improve performance for adding RemoveExtraS… ( #2159 )
...
* chore: Add RemoveExtraSlash flag
* fix testing
Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com>
2019-11-29 00:02:02 +08:00
Ngalim Siregar
231ff00d1f
Refactor redirect request in gin.go ( #1970 )
...
* Refactor redirect request in gin.go
* Update http status code
2019-11-26 08:19:30 +08:00
thinkerou
3c8e29b53c
drop support govendor ( #2148 )
2019-11-25 15:42:23 +08:00
Xudong Cai
e90e2ba9b3
upgrade go-validator to v10 ( #2149 )
...
* upgrade go-validator to v10
* fix fmt
2019-11-25 14:49:45 +08:00
BradyBromley
3737520f17
Changed wording for clarity in README.md ( #2122 )
2019-11-25 11:03:36 +08:00
Dmitry Kutakov
b52a1a1588
allow empty headers on DataFromReader ( #2121 )
2019-11-25 10:45:53 +08:00
thinkerou
2ee0e96394
Drop support go1.10 ( #2147 )
2019-11-24 23:07:56 +08:00
Ivan Chen
70ca31bc11
fix comment in `mode.go` ( #2129 )
...
EnableJsonDisallowUnknownFields => EnableJsonDecoderDisallowUnknownFields
2019-11-24 16:22:18 +08:00
thinkerou
15ced05c53
ready to release v1.5.0 ( #2109 )
...
* ready to release v1.5.0
* add some commit log
* Update CHANGELOG.md
Co-Authored-By: Dominik-K <dominik-k@mailbox.org>
* Update CHANGELOG.md
Co-Authored-By: Dominik-K <dominik-k@mailbox.org>
* Update CHANGELOG.md
Co-Authored-By: Dominik-K <dominik-k@mailbox.org>
* Update CHANGELOG.md
Co-Authored-By: Dominik-K <dominik-k@mailbox.org>
* Update CHANGELOG.md
Co-Authored-By: Dominik-K <dominik-k@mailbox.org>
* Update CHANGELOG.md
Co-Authored-By: Dominik-K <dominik-k@mailbox.org>
* Update CHANGELOG.md
Co-Authored-By: Dominik-K <dominik-k@mailbox.org>
* Update CHANGELOG.md
Co-Authored-By: Dominik-K <dominik-k@mailbox.org>
* Update CHANGELOG.md
Co-Authored-By: Dominik-K <dominik-k@mailbox.org>
* Update CHANGELOG.md
Co-Authored-By: Dominik-K <dominik-k@mailbox.org>
* Update CHANGELOG.md
Co-Authored-By: Dominik-K <dominik-k@mailbox.org>
* Update CHANGELOG.md
Co-Authored-By: Dominik-K <dominik-k@mailbox.org>
* Update CHANGELOG.md
Co-Authored-By: Dominik-K <dominik-k@mailbox.org>
* remove refactor and update readme pr
2019-11-24 10:25:21 +08:00
Dmitry Kutakov
db9174ae0c
fix ignore walking on form mapping ( #1942 ) ( #1943 )
2019-11-01 10:47:40 +08:00
linfangrong
0f951956d0
[FIX] c.Request.FormFile maybe file, need close ( #2114 )
2019-10-31 23:17:12 +08:00
Shamus Taylor
aabaccbba2
Close files opened in static file handler ( #2118 )
...
* Close files opened in static file handler
* Do not use defer
2019-10-31 22:52:02 +08:00
ishanray
517eacb4f9
Update gin.go ( #2110 )
2019-10-31 11:13:39 +08:00
Dmitry Kutakov
393a63f3b0
Fix 'errcheck' linter warnings ( #2093 )
2019-10-27 13:58:59 +08:00
ZhangYunHao
8a1bfcfd3b
format errUnknownType ( #2103 )
2019-10-26 14:20:35 +08:00
Ildar1111
089016a092
Update README.md ( #2106 )
...
* Update README.md
c:\>curl 0.0.0.0:8080
"Failed to connect to 0.0.0.0 port 8080: Address not available"
Connecting to address 0.0.0.0:8080 is not allowed on windows. From http://msdn.microsoft.com/en-us/library/aa923167.aspx
" ... If the address member of the structure specified by the name parameter is
all zeroes, connect will return the error WSAEADDRNOTAVAIL. ..."
* Update README.md
edit comment
2019-10-25 10:03:53 +08:00
willnewrelic
0ce4661029
Use Writer in Context.Status ( #1606 )
2019-10-17 10:14:44 +08:00
Dmitry Kutakov
1a1cf655bd
add details in issue template ( #2085 )
...
indirectly request more details
2019-10-15 14:25:55 +08:00
Dmitry Kutakov
3cea16cc6c
Update go.sum file ( #2094 )
2019-10-15 11:04:25 +08:00
Dmitry Kutakov
f7becac7bc
Relocate binding body tests ( #2086 )
...
* Relocate binding body tests
Every test file should be related to a tested file.
Remove useless tests.
* Add github.com/stretchr/testify/require package
2019-10-10 16:58:31 +08:00
John Bampton
4fd3234840
Fix spelling. ( #2080 )
2019-10-03 07:46:41 +08:00
John Bampton
beb879e475
Change Writter to Writer. ( #2079 )
2019-09-30 14:22:12 +08:00
Manjusaka
79840bc1c6
support run HTTP server with specific net.Listener ( #2023 )
2019-09-30 09:12:22 +08:00
bullgare
9b9f4fab34
Updated Readme.md: file.Close() for template read ( #2068 )
2019-09-24 22:18:41 +08:00
Gaozhen Ying
d6eafcf48a
add TestDisableBindValidation ( #2071 )
2019-09-24 21:44:15 +08:00
Santhosh Kumar
2e5a7196cc
use url.URL.Query instead of parsing query ( #2063 )
2019-09-24 10:01:57 +08:00
bullgare
f45c83c70c
Updated Readme.md for serving multiple services ( #2067 )
...
Previous version had issues - if one service did not start for any reason, you would never know about it.
2019-09-23 23:48:10 +08:00
thinkerou
0b96dd8ae5
chore: remove env var for go master branch ( #2056 )
2019-09-22 15:35:34 +08:00
ZYunH
b562fed3aa
Make countParams more readable ( #2052 )
2019-09-11 18:10:39 +08:00
Gaozhen Ying
9aa870f108
Adjust Render.Redirect test case ( #2053 )
2019-09-10 17:16:37 +08:00
Panmax
b8b2fada5c
fix GetPostFormMap ( #2051 )
2019-09-10 14:32:30 +08:00
Krzysztof Szafrański
f38c30a0d2
feat(binding): add DisallowUnknownFields() in gin.Context.BindJSON() ( #2028 )
2019-09-06 13:56:59 +08:00
Jim Filippou
b80d675864
Added specific installation instructions for Mac ( #2011 )
...
Made it more clear for Mac users using Go version 1.8 and greater.
2019-09-05 21:50:54 +08:00
thinkerou
1acb3fb30a
upgrade validator version to v9 ( #1015 )
...
* upgrade validator version to v9
* Update vendor.json
* Update go.mod
* Update go.sum
* fix
* fix
* fix bug
* Update binding_test.go
* Update validate_test.go
* Update go.sum
* Update go.mod
* Update go.sum
* Update go.mod
* Update go.sum
2019-09-05 21:39:56 +08:00
thinkerou
c3f7fc399a
chore: support go1.13 ( #2038 )
...
* chore: support go1.13
* chore: remove env var for go1.13
2019-09-04 12:26:50 +08:00
George Gabolaev
01ca625b98
Fixed JSONP format (added semicolon) ( #2007 )
...
* Fixed JSONP format (added semicolon)
* render_test fix
2019-09-02 20:18:08 +08:00
Johnny Dallas
6ece26c7c5
Add Header bind methods to README ( #2025 )
2019-08-30 10:58:55 +08:00
Shuo
a22377b09b
logger_test: color ( #1926 )
...
* logger color: string literals
* logger_test: color
2019-08-29 08:32:22 +08:00
Carlos Eduardo
9a820cf005
Bump github.com/mattn/go-isatty library to support Risc-V ( #2019 )
...
Signed-off-by: CarlosEDP <me@carlosedp.com>
2019-08-16 09:10:44 +08:00
Andrew Szeto
5612cadb73
Remove unused code ( #2013 )
2019-08-10 09:26:58 +08:00
Segev Finer
20440b96b9
Support negative Content-Length in DataFromReader ( #1981 )
...
You can get an http.Response with ContentLength set to -1 (Chunked encoding), so
for DataFromReader to be useful for those we need to support that.
2019-08-05 09:42:59 +08:00
Christian Muehlhaeuser
461df9320a
Simplify code ( #2004 )
...
- Use buf.String instead of converison
- Remove redundant return
2019-07-27 09:06:37 +08:00
guonaihong
502c898d75
binding: support unix time ( #1980 )
...
* binding: support unix time
ref:#1979
* binding: support unix time
add test file
modify readme
```golang
package main
import (
"fmt"
"github.com/gin-gonic/gin"
"time"
)
type shareTime struct {
CreateTime time.Time `form:"createTime" time_format:"unixNano"`
UnixTime time.Time `form:"unixTime" time_format:"unix"`
}
func main() {
r := gin.Default()
unix := r.Group("/unix")
testCT := time.Date(2019, 7, 6, 16, 0, 33, 123, time.Local)
fmt.Printf("%d\n", testCT.UnixNano())
testUT := time.Date(2019, 7, 6, 16, 0, 33, 0, time.Local)
fmt.Printf("%d\n", testUT.Unix())
unix.GET("/nano", func(c *gin.Context) {
s := shareTime{}
c.ShouldBindQuery(&s)
if !testCT.Equal(s.CreateTime) {
c.String(500, "want %d got %d", testCT.UnixNano(), s.CreateTime)
return
}
c.JSON(200, s)
})
unix.GET("/sec", func(c *gin.Context) {
s := shareTime{}
c.ShouldBindQuery(&s)
if !testUT.Equal(s.UnixTime) {
c.String(500, "want %d got %d", testCT.Unix(), s.UnixTime)
return
}
c.JSON(200, s)
})
r.Run()
}
```
* Contraction variable scope
2019-07-10 13:02:40 +08:00
thinkerou
0349de518b
upgrade github.com/ugorji/go/codec ( #1969 )
2019-07-10 06:20:20 +08:00