Pārlūkot izejas kodu

feat: add GetRawData func. (#857)

* feat: add GetRawData func.

* update return style

Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com>
Bo-Yi Wu 8 gadi atpakaļ
vecāks
revīzija
41316b9ca9
2 mainītis faili ar 17 papildinājumiem un 0 dzēšanām
  1. 6 0
      context.go
  2. 11 0
      context_test.go

+ 6 - 0
context.go

@@ -7,6 +7,7 @@ package gin
 import (
 import (
 	"errors"
 	"errors"
 	"io"
 	"io"
+	"io/ioutil"
 	"math"
 	"math"
 	"mime/multipart"
 	"mime/multipart"
 	"net"
 	"net"
@@ -445,6 +446,11 @@ func (c *Context) GetHeader(key string) string {
 	return c.requestHeader(key)
 	return c.requestHeader(key)
 }
 }
 
 
+// GetRawData return stream data
+func (c *Context) GetRawData() ([]byte, error) {
+	return ioutil.ReadAll(c.Request.Body)
+}
+
 func (c *Context) SetCookie(
 func (c *Context) SetCookie(
 	name string,
 	name string,
 	value string,
 	value string,

+ 11 - 0
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, "1.0.0", c.GetHeader("Gin-Version"))
 	assert.Equal(t, "", c.GetHeader("Connection"))
 	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))
+}