Как подразумевается вышеупомянутой библиотекой, вы можете выполнять сетевые вызовы асинхронно, то есть не в основном потоке, и поэтому мы фактически используем asynctask, чтобы избежать блокировки основного потока.
Итак, если вы используете выше библиотеки, тогда нет необходимости использовать Asynctask
, и я уверен, что вы никогда не получите NetworkConnectionOnMainThreadException
. Надеюсь, это поможет.
Пробел не является допустимым символом в заголовке. HTTP определен RFC 7230 .
Синтаксис поля заголовка определен в разделе 3.2. Поля заголовка
Each header field consists of a case-insensitive field name followed by a colon (":"), optional leading whitespace, the field value, and optional trailing whitespace. header-field = field-name ":" OWS field-value OWS field-name = token field-value = *( field-content / obs-fold ) field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ] field-vchar = VCHAR / obs-text obs-fold = CRLF 1*( SP / HTAB ) ; obsolete line folding ; see Section 3.2.4
Таким образом, имя поля является токеном. Токены определены в 3.2.6. Компоненты значения поля
Most HTTP header field values are defined using common syntax components (token, quoted-string, and comment) separated by whitespace or specific delimiting characters. Delimiters are chosen from the set of US-ASCII visual characters not allowed in a token (DQUOTE and "(),/:;?@[\]{}"). token = 1*tchar tchar = "!" / "#" / "$" / "%" / "&" / "'" / "*" / "+" / "-" / "." / "^" / "_" / "`" / "|" / "~" / DIGIT / ALPHA ; any VCHAR, except delimiters
Последний фрагмент представлен в 1.2. Обозначение синтаксиса
The following core rules are included by reference, as defined in [RFC5234], Appendix B.1: ALPHA (letters), CR (carriage return), CRLF (CR LF), CTL (controls), DIGIT (decimal 0-9), DQUOTE (double quote), HEXDIG (hexadecimal 0-9/A-F/a-f), HTAB (horizontal tab), LF (line feed), OCTET (any 8-bit sequence of data), SP (space), and VCHAR (any visible [USASCII] character).
Таким образом, пробелы не допускаются в имени заголовка.