mirror of https://github.com/gin-gonic/gin.git
Fast path for setting headers.
- No heap allocation - No indirection - CanonicalMIMEHeaderKey() is not called
This commit is contained in:
parent
35fd7fb480
commit
a2105ce34c
|
@ -30,7 +30,7 @@ type (
|
|||
}
|
||||
)
|
||||
|
||||
const htmlContentType = "text/html; charset=utf-8"
|
||||
var htmlContentType = []string{"text/html; charset=utf-8"}
|
||||
|
||||
func (r HTMLProduction) Instance(name string, data interface{}) Render {
|
||||
return HTML{
|
||||
|
@ -58,6 +58,6 @@ func (r HTMLDebug) loadTemplate() *template.Template {
|
|||
}
|
||||
|
||||
func (r HTML) Write(w http.ResponseWriter) error {
|
||||
w.Header().Set("Content-Type", htmlContentType)
|
||||
w.Header()["Content-Type"] = htmlContentType
|
||||
return r.Template.ExecuteTemplate(w, r.Name, r.Data)
|
||||
}
|
||||
|
|
|
@ -19,15 +19,15 @@ type (
|
|||
}
|
||||
)
|
||||
|
||||
const jsonContentType = "application/json; charset=utf-8"
|
||||
var jsonContentType = []string{"application/json; charset=utf-8"}
|
||||
|
||||
func (r JSON) Write(w http.ResponseWriter) error {
|
||||
w.Header().Set("Content-Type", jsonContentType)
|
||||
w.Header()["Content-Type"] = jsonContentType
|
||||
return json.NewEncoder(w).Encode(r.Data)
|
||||
}
|
||||
|
||||
func (r IndentedJSON) Write(w http.ResponseWriter) error {
|
||||
w.Header().Set("Content-Type", jsonContentType)
|
||||
w.Header()["Content-Type"] = jsonContentType
|
||||
jsonBytes, err := json.MarshalIndent(r.Data, "", " ")
|
||||
if err != nil {
|
||||
return err
|
||||
|
|
|
@ -14,12 +14,12 @@ type String struct {
|
|||
Data []interface{}
|
||||
}
|
||||
|
||||
const plainContentType = "text/plain; charset=utf-8"
|
||||
var plainContentType = []string{"text/plain; charset=utf-8"}
|
||||
|
||||
func (r String) Write(w http.ResponseWriter) error {
|
||||
header := w.Header()
|
||||
if _, exist := header["Content-Type"]; !exist {
|
||||
header.Set("Content-Type", plainContentType)
|
||||
header["Content-Type"] = plainContentType
|
||||
}
|
||||
if len(r.Data) > 0 {
|
||||
fmt.Fprintf(w, r.Format, r.Data...)
|
||||
|
|
|
@ -13,9 +13,9 @@ type XML struct {
|
|||
Data interface{}
|
||||
}
|
||||
|
||||
const xmlContentType = "application/xml; charset=utf-8"
|
||||
var xmlContentType = []string{"application/xml; charset=utf-8"}
|
||||
|
||||
func (r XML) Write(w http.ResponseWriter) error {
|
||||
w.Header().Set("Content-Type", xmlContentType)
|
||||
w.Header()["Content-Type"] = xmlContentType
|
||||
return xml.NewEncoder(w).Encode(r.Data)
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue