mirror of
https://github.com/golang/go
synced 2024-11-19 01:04:40 -07:00
net/http/httputil: DumpRequest dumps Content-Length if set in header
Fixes #7215 Change-Id: I108171ef18cac66d0dc11ce3553c26fc49529807 Reviewed-on: https://go-review.googlesource.com/21790 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
This commit is contained in:
parent
c31fdd4ee9
commit
3598d4b838
@ -163,7 +163,6 @@ func valueOrDefault(value, def string) string {
|
|||||||
|
|
||||||
var reqWriteExcludeHeaderDump = map[string]bool{
|
var reqWriteExcludeHeaderDump = map[string]bool{
|
||||||
"Host": true, // not in Header map anyway
|
"Host": true, // not in Header map anyway
|
||||||
"Content-Length": true,
|
|
||||||
"Transfer-Encoding": true,
|
"Transfer-Encoding": true,
|
||||||
"Trailer": true,
|
"Trailer": true,
|
||||||
}
|
}
|
||||||
|
@ -122,6 +122,10 @@ var dumpTests = []dumpTest{
|
|||||||
Host: "post.tld",
|
Host: "post.tld",
|
||||||
Path: "/",
|
Path: "/",
|
||||||
},
|
},
|
||||||
|
Header: http.Header{
|
||||||
|
"Content-Length": []string{"8193"},
|
||||||
|
},
|
||||||
|
|
||||||
ContentLength: 8193,
|
ContentLength: 8193,
|
||||||
ProtoMajor: 1,
|
ProtoMajor: 1,
|
||||||
ProtoMinor: 1,
|
ProtoMinor: 1,
|
||||||
@ -135,6 +139,10 @@ var dumpTests = []dumpTest{
|
|||||||
"Content-Length: 8193\r\n" +
|
"Content-Length: 8193\r\n" +
|
||||||
"Accept-Encoding: gzip\r\n\r\n" +
|
"Accept-Encoding: gzip\r\n\r\n" +
|
||||||
strings.Repeat("a", 8193),
|
strings.Repeat("a", 8193),
|
||||||
|
WantDump: "POST / HTTP/1.1\r\n" +
|
||||||
|
"Host: post.tld\r\n" +
|
||||||
|
"Content-Length: 8193\r\n\r\n" +
|
||||||
|
strings.Repeat("a", 8193),
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
@ -144,6 +152,38 @@ var dumpTests = []dumpTest{
|
|||||||
WantDump: "GET http://foo.com/ HTTP/1.1\r\n" +
|
WantDump: "GET http://foo.com/ HTTP/1.1\r\n" +
|
||||||
"User-Agent: blah\r\n\r\n",
|
"User-Agent: blah\r\n\r\n",
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// Issue #7215. DumpRequest should return the "Content-Length" when set
|
||||||
|
{
|
||||||
|
Req: *mustReadRequest("POST /v2/api/?login HTTP/1.1\r\n" +
|
||||||
|
"Host: passport.myhost.com\r\n" +
|
||||||
|
"Content-Length: 3\r\n" +
|
||||||
|
"\r\nkey1=name1&key2=name2"),
|
||||||
|
WantDump: "POST /v2/api/?login HTTP/1.1\r\n" +
|
||||||
|
"Host: passport.myhost.com\r\n" +
|
||||||
|
"Content-Length: 3\r\n" +
|
||||||
|
"\r\nkey",
|
||||||
|
},
|
||||||
|
|
||||||
|
// Issue #7215. DumpRequest should return the "Content-Length" in ReadRequest
|
||||||
|
{
|
||||||
|
Req: *mustReadRequest("POST /v2/api/?login HTTP/1.1\r\n" +
|
||||||
|
"Host: passport.myhost.com\r\n" +
|
||||||
|
"Content-Length: 0\r\n" +
|
||||||
|
"\r\nkey1=name1&key2=name2"),
|
||||||
|
WantDump: "POST /v2/api/?login HTTP/1.1\r\n" +
|
||||||
|
"Host: passport.myhost.com\r\n" +
|
||||||
|
"Content-Length: 0\r\n\r\n",
|
||||||
|
},
|
||||||
|
|
||||||
|
// Issue #7215. DumpRequest should not return the "Content-Length" if unset
|
||||||
|
{
|
||||||
|
Req: *mustReadRequest("POST /v2/api/?login HTTP/1.1\r\n" +
|
||||||
|
"Host: passport.myhost.com\r\n" +
|
||||||
|
"\r\nkey1=name1&key2=name2"),
|
||||||
|
WantDump: "POST /v2/api/?login HTTP/1.1\r\n" +
|
||||||
|
"Host: passport.myhost.com\r\n\r\n",
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestDumpRequest(t *testing.T) {
|
func TestDumpRequest(t *testing.T) {
|
||||||
|
@ -47,7 +47,7 @@ func ExampleDumpRequest() {
|
|||||||
fmt.Printf("%s", b)
|
fmt.Printf("%s", b)
|
||||||
|
|
||||||
// Output:
|
// Output:
|
||||||
// "POST / HTTP/1.1\r\nHost: www.example.org\r\nAccept-Encoding: gzip\r\nUser-Agent: Go-http-client/1.1\r\n\r\nGo is a general-purpose language designed with systems programming in mind."
|
// "POST / HTTP/1.1\r\nHost: www.example.org\r\nAccept-Encoding: gzip\r\nContent-Length: 75\r\nUser-Agent: Go-http-client/1.1\r\n\r\nGo is a general-purpose language designed with systems programming in mind."
|
||||||
}
|
}
|
||||||
|
|
||||||
func ExampleDumpRequestOut() {
|
func ExampleDumpRequestOut() {
|
||||||
|
Loading…
Reference in New Issue
Block a user