mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
http: change ResponseWriter.SetHeader(k,v) to Header() accessor
Caller code needs to change:
rw.SetHeader("Content-Type", "text/plain")
to:
rw.Header().Set("Content-Type", "text/plain")
This now permits returning multiple headers
with the same name using Add:
rw.Header().Add("Set-Cookie", "..")
rw.Header().Add("Set-Cookie", "..")
This patch also fixes serialization of headers, removing newline characters.
Fixes #488
Fixes #914
R=rsc
CC=gburd, golang-dev
https://golang.org/cl/4239076
This commit is contained in:
parent
fe8639a9fb
commit
2c420ece67
16 changed files with 107 additions and 110 deletions
|
|
@ -65,6 +65,29 @@ var respWriteTests = []respWriteTest{
|
|||
"Transfer-Encoding: chunked\r\n\r\n" +
|
||||
"6\r\nabcdef\r\n0\r\n\r\n",
|
||||
},
|
||||
|
||||
// Header value with a newline character (Issue 914).
|
||||
// Also tests removal of leading and trailing whitespace.
|
||||
{
|
||||
Response{
|
||||
StatusCode: 204,
|
||||
ProtoMajor: 1,
|
||||
ProtoMinor: 1,
|
||||
RequestMethod: "GET",
|
||||
Header: Header{
|
||||
"Foo": []string{" Bar\nBaz "},
|
||||
},
|
||||
Body: nil,
|
||||
ContentLength: 0,
|
||||
TransferEncoding: []string{"chunked"},
|
||||
Close: true,
|
||||
},
|
||||
|
||||
"HTTP/1.1 204 No Content\r\n" +
|
||||
"Connection: close\r\n" +
|
||||
"Foo: Bar Baz\r\n" +
|
||||
"\r\n",
|
||||
},
|
||||
}
|
||||
|
||||
func TestResponseWrite(t *testing.T) {
|
||||
|
|
@ -78,7 +101,7 @@ func TestResponseWrite(t *testing.T) {
|
|||
}
|
||||
sraw := braw.String()
|
||||
if sraw != tt.Raw {
|
||||
t.Errorf("Test %d, expecting:\n%s\nGot:\n%s\n", i, tt.Raw, sraw)
|
||||
t.Errorf("Test %d, expecting:\n%q\nGot:\n%q\n", i, tt.Raw, sraw)
|
||||
continue
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue