|
@@ -3,6 +3,7 @@ package http
|
|
|
import (
|
|
|
"encoding/json"
|
|
|
"net/http"
|
|
|
+ "strings"
|
|
|
)
|
|
|
|
|
|
var (
|
|
@@ -38,23 +39,25 @@ func (c *Context) Bind(i interface{}) (err error) {
|
|
|
}
|
|
|
|
|
|
func (c *Context) Success(val interface{}) (err error) {
|
|
|
- var (
|
|
|
- buf []byte
|
|
|
- )
|
|
|
- if buf, err = json.Marshal(&Response{Result: val}); err == nil {
|
|
|
- c.response.Header().Set("Content-Type", "application/json")
|
|
|
- _, err = c.response.Write(buf)
|
|
|
+ c.response.Header().Set("Content-Type", "application/json")
|
|
|
+ enc := json.NewEncoder(c.response)
|
|
|
+ if strings.Contains(c.request.Header.Get("User-Agent"), "curl") {
|
|
|
+ enc.SetIndent("", "\t")
|
|
|
+ }
|
|
|
+ if err = enc.Encode(&Response{Result: val}); err != nil {
|
|
|
+ c.response.WriteHeader(http.StatusBadGateway)
|
|
|
}
|
|
|
return
|
|
|
}
|
|
|
|
|
|
func (c *Context) Error(code int, message string) (err error) {
|
|
|
- var (
|
|
|
- buf []byte
|
|
|
- )
|
|
|
- if buf, err = json.Marshal(&Response{Code: code, Message: message}); err == nil {
|
|
|
- c.response.Header().Set("Content-Type", "application/json")
|
|
|
- _, err = c.response.Write(buf)
|
|
|
+ c.response.Header().Set("Content-Type", "application/json")
|
|
|
+ enc := json.NewEncoder(c.response)
|
|
|
+ if strings.Contains(c.request.Header.Get("User-Agent"), "curl") {
|
|
|
+ enc.SetIndent("", "\t")
|
|
|
+ }
|
|
|
+ if err = enc.Encode(&Response{Code: code, Message: message}); err != nil {
|
|
|
+ c.response.WriteHeader(http.StatusBadGateway)
|
|
|
}
|
|
|
return
|
|
|
}
|