在Android上解析查詢字符串JavaEEServletRequest.getParameterValue().在非EE平臺(tái)上,URL.getQuery()只返回一個(gè)字符串。在URL中正確解析查詢字符串的正常方法是什么?不在Java EE上?<咆哮>在答案中,嘗試并創(chuàng)建自己的解析器是很流行的。這是非常有趣和令人興奮的微編碼項(xiàng)目,但是我不能說這是個(gè)好主意 :(下面的代碼片段通常是有缺陷或壞的,順便說一句。對讀者來說,破解它們是一項(xiàng)有趣的練習(xí)。還有黑客攻擊使用它們的網(wǎng)站.解析查詢字符串是一個(gè)定義良好的問題,但是讀取規(guī)范和理解細(xì)微差別并不容易。讓一些平臺(tái)庫程序員為您做艱苦的工作,做好修復(fù)工作,這要好得多!</咆哮>
3 回答

尚方寶劍之說
TA貢獻(xiàn)1788條經(jīng)驗(yàn) 獲得超4個(gè)贊
public static Map<String, List<String>> getUrlParameters(String url) throws UnsupportedEncodingException { Map<String, List<String>> params = new HashMap<String, List<String>>(); String[] urlParts = url.split("\\?"); if (urlParts.length > 1) { String query = urlParts[1]; for (String param : query.split("&")) { String pair[] = param.split("="); String key = URLDecoder.decode(pair[0], "UTF-8"); String value = ""; if (pair.length > 1) { value = URLDecoder.decode(pair[1], "UTF-8"); } List<String> values = params.get(key); if (values == null) { values = new ArrayList<String>(); params.put(key, values); } values.add(value); } } return params;}
添加回答
舉報(bào)
0/150
提交
取消