remove bodyless check

master
kevin 4 years ago committed by kingxt
parent a26fc2b672
commit fcaebd73fb

@ -34,13 +34,9 @@ func Parse(r *http.Request, v interface{}) error {
return err
}
if r.ContentLength > 0 {
return ParseJsonBody(r, v)
}
return nil
}
// Parses the form request.
func ParseForm(r *http.Request, v interface{}) error {
if strings.Contains(r.Header.Get(ContentType), multipartFormData) {
@ -87,12 +83,6 @@ func ParseHeader(headerValue string) map[string]string {
// Parses the post request which contains json in body.
func ParseJsonBody(r *http.Request, v interface{}) error {
switch r.Method {
case http.MethodDelete, http.MethodPatch, http.MethodPost, http.MethodPut:
default:
return ErrBodylessRequest
}
var reader io.Reader
if withJsonBody(r) {
reader = io.LimitReader(r.Body, maxBodyLen)

@ -134,26 +134,6 @@ func BenchmarkParseRaw(b *testing.B) {
}
}
func TestParseJsonBodyless(t *testing.T) {
methods := []string{
http.MethodConnect,
http.MethodGet,
http.MethodHead,
http.MethodOptions,
http.MethodTrace,
}
for _, method := range methods {
t.Run(method, func(t *testing.T) {
r, err := http.NewRequest(http.MethodGet, "http://hello.com", nil)
if err != nil {
t.Fatal(err)
}
assert.Equal(t, ErrBodylessRequest, ParseJsonBody(r, nil))
})
}
}
func BenchmarkParseAuto(b *testing.B) {
r, err := http.NewRequest(http.MethodGet, "http://hello.com/a?name=hello&age=18&percent=3.4", nil)
if err != nil {

@ -1,7 +1,5 @@
package httpx
import "errors"
const (
ApplicationJson = "application/json"
ContentEncoding = "Content-Encoding"
@ -19,5 +17,3 @@ const (
CodeSignatureWrongTime
CodeSignatureInvalidToken
)
var ErrBodylessRequest = errors.New("not a POST|PUT|PATCH|DELETE request")

Loading…
Cancel
Save