mirror of
https://github.com/labstack/echo.git
synced 2024-12-20 19:52:47 +02:00
Remove default charset from 'application/json' Content-Type header (#2568)
Fixes #2567
This commit is contained in:
parent
f12fdb09cd
commit
76994d17d5
@ -489,7 +489,7 @@ func (c *context) jsonPBlob(code int, callback string, i interface{}) (err error
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (c *context) json(code int, i interface{}, indent string) error {
|
func (c *context) json(code int, i interface{}, indent string) error {
|
||||||
c.writeContentType(MIMEApplicationJSONCharsetUTF8)
|
c.writeContentType(MIMEApplicationJSON)
|
||||||
c.response.Status = code
|
c.response.Status = code
|
||||||
return c.echo.JSONSerializer.Serialize(c, i, indent)
|
return c.echo.JSONSerializer.Serialize(c, i, indent)
|
||||||
}
|
}
|
||||||
@ -507,7 +507,7 @@ func (c *context) JSONPretty(code int, i interface{}, indent string) (err error)
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (c *context) JSONBlob(code int, b []byte) (err error) {
|
func (c *context) JSONBlob(code int, b []byte) (err error) {
|
||||||
return c.Blob(code, MIMEApplicationJSONCharsetUTF8, b)
|
return c.Blob(code, MIMEApplicationJSON, b)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *context) JSONP(code int, callback string, i interface{}) (err error) {
|
func (c *context) JSONP(code int, callback string, i interface{}) (err error) {
|
||||||
|
@ -154,7 +154,7 @@ func TestContextJSON(t *testing.T) {
|
|||||||
err := c.JSON(http.StatusOK, user{1, "Jon Snow"})
|
err := c.JSON(http.StatusOK, user{1, "Jon Snow"})
|
||||||
if assert.NoError(t, err) {
|
if assert.NoError(t, err) {
|
||||||
assert.Equal(t, http.StatusOK, rec.Code)
|
assert.Equal(t, http.StatusOK, rec.Code)
|
||||||
assert.Equal(t, MIMEApplicationJSONCharsetUTF8, rec.Header().Get(HeaderContentType))
|
assert.Equal(t, MIMEApplicationJSON, rec.Header().Get(HeaderContentType))
|
||||||
assert.Equal(t, userJSON+"\n", rec.Body.String())
|
assert.Equal(t, userJSON+"\n", rec.Body.String())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -178,7 +178,7 @@ func TestContextJSONPrettyURL(t *testing.T) {
|
|||||||
err := c.JSON(http.StatusOK, user{1, "Jon Snow"})
|
err := c.JSON(http.StatusOK, user{1, "Jon Snow"})
|
||||||
if assert.NoError(t, err) {
|
if assert.NoError(t, err) {
|
||||||
assert.Equal(t, http.StatusOK, rec.Code)
|
assert.Equal(t, http.StatusOK, rec.Code)
|
||||||
assert.Equal(t, MIMEApplicationJSONCharsetUTF8, rec.Header().Get(HeaderContentType))
|
assert.Equal(t, MIMEApplicationJSON, rec.Header().Get(HeaderContentType))
|
||||||
assert.Equal(t, userJSONPretty+"\n", rec.Body.String())
|
assert.Equal(t, userJSONPretty+"\n", rec.Body.String())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -192,7 +192,7 @@ func TestContextJSONPretty(t *testing.T) {
|
|||||||
err := c.JSONPretty(http.StatusOK, user{1, "Jon Snow"}, " ")
|
err := c.JSONPretty(http.StatusOK, user{1, "Jon Snow"}, " ")
|
||||||
if assert.NoError(t, err) {
|
if assert.NoError(t, err) {
|
||||||
assert.Equal(t, http.StatusOK, rec.Code)
|
assert.Equal(t, http.StatusOK, rec.Code)
|
||||||
assert.Equal(t, MIMEApplicationJSONCharsetUTF8, rec.Header().Get(HeaderContentType))
|
assert.Equal(t, MIMEApplicationJSON, rec.Header().Get(HeaderContentType))
|
||||||
assert.Equal(t, userJSONPretty+"\n", rec.Body.String())
|
assert.Equal(t, userJSONPretty+"\n", rec.Body.String())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -213,7 +213,7 @@ func TestContextJSONWithEmptyIntent(t *testing.T) {
|
|||||||
err := c.json(http.StatusOK, user{1, "Jon Snow"}, emptyIndent)
|
err := c.json(http.StatusOK, user{1, "Jon Snow"}, emptyIndent)
|
||||||
if assert.NoError(t, err) {
|
if assert.NoError(t, err) {
|
||||||
assert.Equal(t, http.StatusOK, rec.Code)
|
assert.Equal(t, http.StatusOK, rec.Code)
|
||||||
assert.Equal(t, MIMEApplicationJSONCharsetUTF8, rec.Header().Get(HeaderContentType))
|
assert.Equal(t, MIMEApplicationJSON, rec.Header().Get(HeaderContentType))
|
||||||
assert.Equal(t, buf.String(), rec.Body.String())
|
assert.Equal(t, buf.String(), rec.Body.String())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -244,7 +244,7 @@ func TestContextJSONBlob(t *testing.T) {
|
|||||||
err = c.JSONBlob(http.StatusOK, data)
|
err = c.JSONBlob(http.StatusOK, data)
|
||||||
if assert.NoError(t, err) {
|
if assert.NoError(t, err) {
|
||||||
assert.Equal(t, http.StatusOK, rec.Code)
|
assert.Equal(t, http.StatusOK, rec.Code)
|
||||||
assert.Equal(t, MIMEApplicationJSONCharsetUTF8, rec.Header().Get(HeaderContentType))
|
assert.Equal(t, MIMEApplicationJSON, rec.Header().Get(HeaderContentType))
|
||||||
assert.Equal(t, userJSON, rec.Body.String())
|
assert.Equal(t, userJSON, rec.Body.String())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -533,7 +533,7 @@ func TestContext_JSON_CommitsCustomResponseCode(t *testing.T) {
|
|||||||
|
|
||||||
if assert.NoError(t, err) {
|
if assert.NoError(t, err) {
|
||||||
assert.Equal(t, http.StatusCreated, rec.Code)
|
assert.Equal(t, http.StatusCreated, rec.Code)
|
||||||
assert.Equal(t, MIMEApplicationJSONCharsetUTF8, rec.Header().Get(HeaderContentType))
|
assert.Equal(t, MIMEApplicationJSON, rec.Header().Get(HeaderContentType))
|
||||||
assert.Equal(t, userJSON+"\n", rec.Body.String())
|
assert.Equal(t, userJSON+"\n", rec.Body.String())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
7
echo.go
7
echo.go
@ -169,7 +169,12 @@ const (
|
|||||||
|
|
||||||
// MIME types
|
// MIME types
|
||||||
const (
|
const (
|
||||||
MIMEApplicationJSON = "application/json"
|
// MIMEApplicationJSON JavaScript Object Notation (JSON) https://www.rfc-editor.org/rfc/rfc8259
|
||||||
|
MIMEApplicationJSON = "application/json"
|
||||||
|
// Deprecated: Please use MIMEApplicationJSON instead. JSON should be encoded using UTF-8 by default.
|
||||||
|
// No "charset" parameter is defined for this registration.
|
||||||
|
// Adding one really has no effect on compliant recipients.
|
||||||
|
// See RFC 8259, section 8.1. https://datatracker.ietf.org/doc/html/rfc8259#section-8.1
|
||||||
MIMEApplicationJSONCharsetUTF8 = MIMEApplicationJSON + "; " + charsetUTF8
|
MIMEApplicationJSONCharsetUTF8 = MIMEApplicationJSON + "; " + charsetUTF8
|
||||||
MIMEApplicationJavaScript = "application/javascript"
|
MIMEApplicationJavaScript = "application/javascript"
|
||||||
MIMEApplicationJavaScriptCharsetUTF8 = MIMEApplicationJavaScript + "; " + charsetUTF8
|
MIMEApplicationJavaScriptCharsetUTF8 = MIMEApplicationJavaScript + "; " + charsetUTF8
|
||||||
|
@ -131,7 +131,7 @@ func TestDecompressSkipper(t *testing.T) {
|
|||||||
rec := httptest.NewRecorder()
|
rec := httptest.NewRecorder()
|
||||||
c := e.NewContext(req, rec)
|
c := e.NewContext(req, rec)
|
||||||
e.ServeHTTP(rec, req)
|
e.ServeHTTP(rec, req)
|
||||||
assert.Equal(t, rec.Header().Get(echo.HeaderContentType), echo.MIMEApplicationJSONCharsetUTF8)
|
assert.Equal(t, rec.Header().Get(echo.HeaderContentType), echo.MIMEApplicationJSON)
|
||||||
reqBody, err := io.ReadAll(c.Request().Body)
|
reqBody, err := io.ReadAll(c.Request().Body)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Equal(t, body, string(reqBody))
|
assert.Equal(t, body, string(reqBody))
|
||||||
|
Loading…
Reference in New Issue
Block a user