From 41316b9ca93739de6d6d0ddf2fa1d16bb93f216a Mon Sep 17 00:00:00 2001 From: Bo-Yi Wu Date: Fri, 31 Mar 2017 08:45:56 +0800 Subject: [PATCH] feat: add GetRawData func. (#857) * feat: add GetRawData func. * update return style Signed-off-by: Bo-Yi Wu --- context.go | 6 ++++++ context_test.go | 11 +++++++++++ 2 files changed, 17 insertions(+) diff --git a/context.go b/context.go index f638e623..f519e5bb 100644 --- a/context.go +++ b/context.go @@ -7,6 +7,7 @@ package gin import ( "errors" "io" + "io/ioutil" "math" "mime/multipart" "net" @@ -445,6 +446,11 @@ func (c *Context) GetHeader(key string) string { return c.requestHeader(key) } +// GetRawData return stream data +func (c *Context) GetRawData() ([]byte, error) { + return ioutil.ReadAll(c.Request.Body) +} + func (c *Context) SetCookie( name string, value string, diff --git a/context_test.go b/context_test.go index 52606281..0feeca89 100644 --- a/context_test.go +++ b/context_test.go @@ -1016,3 +1016,14 @@ func TestGetRequestHeaderValue(t *testing.T) { assert.Equal(t, "1.0.0", c.GetHeader("Gin-Version")) assert.Equal(t, "", c.GetHeader("Connection")) } + +func TestContextGetRawData(t *testing.T) { + c, _ := CreateTestContext(httptest.NewRecorder()) + body := bytes.NewBufferString("Fetch binary post data") + c.Request, _ = http.NewRequest("POST", "/", body) + c.Request.Header.Add("Content-Type", MIMEPOSTForm) + + data, err := c.GetRawData() + assert.Nil(t, err) + assert.Equal(t, "Fetch binary post data", string(data)) +}