HTTP 标头中的非法字符
2022-09-02 10:25:41
我正在创建一个,需要设置多个自定义标头。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