Nielegalne znaki w nagłówkach HTTP

TworzęHttpUrlConnection i trzeba ustawić wiele niestandardowych nagłówków.

Chciałbym zrobić coś podobnego do poniższego, ale zawartość mapy nagłówka musi pochodzić z pojedynczego ciągu. Czy są jakieś znaki, które są nielegalne lub bardzo rzadko używane w nazwach nagłówków HTTP i wartościach nagłówków 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());

Rozwiązanie na razie

Nie wydaje się, aby jakiekolwiek nazwy nagłówków HTTP zawierały spacje (zwykle używają zamiast tego myślnika?), Więc mogę oddzielić nazwę od wartości za pomocą pojedynczej spacji. Jeśli chodzi o zestawy nazw i wartości, wygląda na to, że jestem spieprzony, ponieważ wartość może zawierać prawie wszystko zgodnie z podaną odpowiedzią. Właśnie wybrałem postać, której jestem pewien, że najprawdopodobniej nigdy nie zostanie użyta:§. Jeśli okaże się, że jest to rzeczywiście potrzebne, będę musiał dostosować mój kod: p

Header1 Value1§Header2 Value2§Header3 Header3

questionAnswers(1)

yourAnswerToTheQuestion