Я создаю 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