Skip to content

Commit baf27f4

Browse files
author
Dean Karn
committed
Correct Write Header call order
Some previous refactoring caused writing of headers after write.
1 parent fa4bcb0 commit baf27f4

File tree

1 file changed

+6
-7
lines changed

1 file changed

+6
-7
lines changed

net/http/helpers.go

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -103,13 +103,13 @@ func ClientIP(r *http.Request) (clientIP string) {
103103

104104
// JSON marshals provided interface + returns JSON + status code
105105
func JSON(w http.ResponseWriter, status int, i interface{}) error {
106+
w.Header().Set(ContentType, ApplicationJSON)
107+
w.WriteHeader(status)
106108
enc := json.NewEncoder(w)
107109
err := enc.Encode(i)
108110
if err != nil {
109111
return err
110112
}
111-
w.Header().Set(ContentType, ApplicationJSON)
112-
w.WriteHeader(status)
113113
return nil
114114
}
115115

@@ -124,13 +124,12 @@ func JSONBytes(w http.ResponseWriter, status int, b []byte) (err error) {
124124
// JSONP sends a JSONP response with status code and uses `callback` to construct
125125
// the JSONP payload.
126126
func JSONP(w http.ResponseWriter, status int, i interface{}, callback string) error {
127+
w.Header().Set(ContentType, ApplicationJSON)
128+
w.WriteHeader(status)
127129
b, err := json.Marshal(i)
128130
if err != nil {
129131
return err
130132
}
131-
w.Header().Set(ContentType, ApplicationJSON)
132-
w.WriteHeader(status)
133-
134133
if _, err = w.Write([]byte(callback + "(")); err == nil {
135134
if _, err = w.Write(b); err == nil {
136135
_, err = w.Write([]byte(");"))
@@ -141,12 +140,12 @@ func JSONP(w http.ResponseWriter, status int, i interface{}, callback string) er
141140

142141
// XML marshals provided interface + returns XML + status code
143142
func XML(w http.ResponseWriter, status int, i interface{}) error {
143+
w.Header().Set(ContentType, ApplicationXML)
144+
w.WriteHeader(status)
144145
b, err := xml.Marshal(i)
145146
if err != nil {
146147
return err
147148
}
148-
w.Header().Set(ContentType, ApplicationXML)
149-
w.WriteHeader(status)
150149
if _, err = w.Write(xmlHeaderBytes); err == nil {
151150
_, err = w.Write(b)
152151
}

0 commit comments

Comments
 (0)