我正在創建HttpUrlConnection
並需要設置多個自定義標頭。HTTP標頭中的非法字符
我想按照以下方法做一些事情,但標題地圖的內容需要來自單個字符串。在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
請參閱:http://stackoverflow.com/questions/4400678/http-header-should-use-what-character-encoding –