diff --git a/internal/net/gphttp/content_type.go b/internal/net/gphttp/content_type.go index 5f30d9e..7dd6bbb 100644 --- a/internal/net/gphttp/content_type.go +++ b/internal/net/gphttp/content_type.go @@ -3,6 +3,7 @@ package gphttp import ( "mime" "net/http" + "strings" ) type ( @@ -33,13 +34,20 @@ func GetContentType(h http.Header) ContentType { func GetAccept(h http.Header) AcceptContentType { var accepts []ContentType - for _, v := range h["Accept"] { + acceptHeader := h["Accept"] + if len(acceptHeader) == 1 { + acceptHeader = strings.Split(acceptHeader[0], ",") + } + for _, v := range acceptHeader { ct, _, err := mime.ParseMediaType(v) if err != nil { continue } accepts = append(accepts, ContentType(ct)) } + if len(accepts) == 0 { + return []ContentType{"*/*"} + } return accepts }