in ktor-http/common/src/io/ktor/http/ContentTypes.kt [110:138]
public fun parse(value: String): ContentType {
if (value.isBlank()) return Any
return parse(value) { parts, parameters ->
val slash = parts.indexOf('/')
if (slash == -1) {
if (parts.trim() == "*") {
return Any
}
throw BadContentTypeFormatException(value)
}
val type = parts.substring(0, slash).trim()
if (type.isEmpty()) {
throw BadContentTypeFormatException(value)
}
val subtype = parts.substring(slash + 1).trim()
if (subtype.isEmpty() || subtype.contains('/')) {
throw BadContentTypeFormatException(value)
}
ContentType(type, subtype, parameters)
}
}