Tworzę HttpUrlConnection
i trzeba ustawić wiele niestandardowych nagłówków.Niedozwolone znaki w nagłówkach HTTP
Chciałbym zrobić coś podobnego, ale zawartość mapy nagłówka musi pochodzić z jednego ciągu. Czy są jakieś znaki, które są nielegalne lub bardzo rzadko używane w nazwach nagłówków HTTP i nagłówkach 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 Dotychczas
nie wydaje się jakiegokolwiek nagłówka HTTP nazwy zawierać spacji (zwykle używać kreskę zamiast?), Więc mogę oddzielić nazwę z wartością za pomocą pojedyncza przestrzeń. Jeśli chodzi o zestawy wartości nazw, wydaje mi się, że jestem wkręcony, ponieważ wartość może zawierać prawie wszystko zgodnie z podaną odpowiedzią. Wybrałam więc postać, której jestem prawie pewna, najprawdopodobniej nigdy nie zostanie użyta: §
. Jeśli okaże się, jest to rzeczywiście potrzebne, po prostu trzeba dostosować mój kod: p
Header1 Value1§Header2 Value2§Header3 Header3
Zobacz tutaj: http://stackoverflow.com/questions/4400678/http-header-ould-use-what-character-encoding –