@@ -103,13 +103,13 @@ func ClientIP(r *http.Request) (clientIP string) {
103103
104104// JSON marshals provided interface + returns JSON + status code
105105func 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.
126126func 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
143142func 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