diff --git a/context.go b/context.go index 284972d..9633fd8 100644 --- a/context.go +++ b/context.go @@ -405,6 +405,15 @@ func (c *Context) AddHeader(key, value string) { c.Header().Add(key, value) } +// MergeHeader merge http header to response +func (c *Context) MergeHeader(h http.Header) { + for key, values := range h { + for _, value := range values { + c.AddHeader(key, value) + } + } +} + // ResetHeader reset response header func (c *Context) ResetHeader() { h := c.Header() diff --git a/context_test.go b/context_test.go index 3ebc855..455aa20 100644 --- a/context_test.go +++ b/context_test.go @@ -462,6 +462,17 @@ func TestNoContent(t *testing.T) { assert.Empty(c.GetHeader(HeaderTransferEncoding)) } +func TestMergeHeader(t *testing.T) { + assert := assert.New(t) + resp := httptest.NewRecorder() + c := NewContext(resp, nil) + h := make(http.Header) + h.Add("a", "1") + h.Add("a", "2") + c.MergeHeader(h) + assert.Equal(h, c.Header()) +} + func TestNotModified(t *testing.T) { assert := assert.New(t) resp := httptest.NewRecorder()