Почему OKHttp запрещает отправку некоторых печатаемых символов в качестве заголовка? Я пишу приложения, которые публикуют заголовок http. Приложения зависали, потому что правильный одиночный кавычка .
Это трассировка стека:
Fatal Exception: java.lang.IllegalArgumentException: Unexpected char 0x2019 at 358 in my-header value: test’s
at okhttp3.Headers.checkValue(Headers.java:272)
at okhttp3.Headers$Builder.add(Headers.java:312)
at okhttp3.Request$Builder.addHeader(Request.java:196)
...
Это исходный код OkHttp , который выдает исключение:
internal fun checkValue(value: String, name: String) {
for (i in 0 until value.length) {
val c = value[i]
require(c == '\t' || c in '\u0020'..'\u007e') {
format("Unexpected char %#04x at %d in %s value: %s", c.toInt(), i, name, value)
}
}
}
Видя этот исходный код, это стандарт, разрешающий только символ в этом диапазоне require(c == '\t' || c in '\u0020'..'\u007e')
для заголовка http?