Skip to content

Commit 2ed918f

Browse files
committed
chore(binding): cache header
Change-Id: I20b0ade897471a08c51ff81883d5d90d143be5cb
1 parent e7c4ee2 commit 2ed918f

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

binding/bind.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,7 @@ func (b *Binding) bindStruct(structPointer interface{}, structValue reflect.Valu
189189
}
190190
queryValues := recv.getQuery(req)
191191
cookies := recv.getCookies(req)
192-
192+
var h http.Header
193193
for _, param := range recv.params {
194194
for i, info := range param.tagInfos {
195195
var found bool
@@ -204,7 +204,10 @@ func (b *Binding) bindStruct(structPointer interface{}, structValue reflect.Valu
204204
case cookie:
205205
found, err = param.bindCookie(info, expr, cookies)
206206
case header:
207-
found, err = param.bindHeader(info, expr, req.GetHeader())
207+
if h == nil {
208+
h = req.GetHeader()
209+
}
210+
found, err = param.bindHeader(info, expr, h)
208211
case form, json, protobuf:
209212
if info.paramIn == in(bodyCodec) {
210213
found, err = param.bindOrRequireBody(info, expr, bodyCodec, bodyString, postForm, fileHeaders,

0 commit comments

Comments
 (0)