fix(http): content type detection

This commit is contained in:
yusing 2025-05-04 16:18:46 +08:00
parent 797d88772f
commit e275ee634c

View file

@ -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
}