diff --git a/header.go b/header.go index 40dc2d6..c8d9835 100644 --- a/header.go +++ b/header.go @@ -69,7 +69,7 @@ type RequestHeader struct { // IsMethodGet returns true if request method is GET. func (h *RequestHeader) IsMethodGet() bool { - return bytes.Equal(h.Method, strGet) + return bytes.Equal(h.Method, strGet) || len(h.Method) == 0 } // IsMethodPost returns true if request methos is POST. diff --git a/header_test.go b/header_test.go index 727550a..d5af6ac 100644 --- a/header_test.go +++ b/header_test.go @@ -10,6 +10,20 @@ import ( "testing" ) +func TestRequestHeaderEmptyMethod(t *testing.T) { + var h RequestHeader + + if !h.IsMethodGet() { + t.Fatalf("empty method must be equivalent to GET") + } + if h.IsMethodPost() { + t.Fatalf("empty method cannot be POST") + } + if h.IsMethodHead() { + t.Fatalf("empty method cannot be HEAD") + } +} + func TestResponseHeaderHTTPVer(t *testing.T) { // non-http/1.1 testResponseHeaderHTTPVer(t, "HTTP/1.0 200 OK\r\nContent-Type: aaa\r\nContent-Length: 123\r\n\r\n", true)