Недопустимые символы в заголовках HTTP
Я создаюHttpUrlConnection
и нужно установить несколько пользовательских заголовков.
Я хотел бы сделать что-то вроде следующего, но содержимое карты заголовка должно исходить из одной строки. Существуют ли какие-либо символы, которые являются недопустимыми или используются крайне редко как в именах заголовков HTTP, так и в значениях заголовков HTTP?
HashMap<String, String> headers = new HashMap<String, String>();
// TODO: How can I fill the headers map reliably from a single string?
HttpURLConnection c = (HttpURLConnection) url.openConnection();
for(Map.Entry<String, String> e : headers.entrySet())
c.setRequestProperty(e.getKey(), e.getValue());
Решение на данный момент
Кажется, что имена HTTP-заголовков не содержат пробелов (обычно вместо них используется тире?), Поэтому я могу отделить имя от значения, используя один пробел. Что касается наборов «имя-значение», то, похоже, я облажался, так как значение может содержать почти все, что соответствует данному ответу. Поэтому я только что выбрал персонажа, который, я уверен, никогда не будет использован:§
, Если окажется, что это действительно нужно, мне просто нужно откорректировать мой код: p
Header1 Value1§Header2 Value2§Header3 Header3