Unzulässige Zeichen in HTTP-Headern
Ich erstelle eineHttpUrlConnection
und müssen mehrere benutzerdefinierte Header festlegen.
Ich würde gerne etwas in der folgenden Richtung tun, aber der Inhalt der Header-Map muss aus einer einzelnen Zeichenfolge stammen. Gibt es Zeichen, die in HTTP-Headernamen und HTTP-Headerwerten unzulässig sind oder extrem selten verwendet werden?
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());
Lösung für jetzt
Scheint, dass keine HTTP-Headernamen Leerzeichen enthalten (verwenden Sie stattdessen normalerweise einen Bindestrich?), Sodass ich den Namen durch ein einzelnes Leerzeichen vom Wert trennen kann. Was die Name-Wert-Sätze angeht, bin ich anscheinend durcheinander, da der Wert gemäß der gegebenen Antwort so ziemlich alles enthalten kann. Ich habe gerade einen Charakter ausgewählt, von dem ich mir ziemlich sicher bin, dass er höchstwahrscheinlich nie verwendet wird:§
. Wenn sich herausstellt, dass es tatsächlich benötigt wird, muss ich nur meinen Code anpassen: p
Header1 Value1§Header2 Value2§Header3 Header3