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