在Android上解析查询字符串JavaEEServletRequest.getParameterValue().在非EE平台上,URL.getQuery()只返回一个字符串。在URL中正确解析查询字符串的正常方法是什么?不在Java EE上?<咆哮>在答案中,尝试并创建自己的解析器是很流行的。这是非常有趣和令人兴奋的微编码项目,但是我不能说这是个好主意 :(下面的代码片段通常是有缺陷或坏的,顺便说一句。对读者来说,破解它们是一项有趣的练习。还有黑客攻击使用它们的网站.解析查询字符串是一个定义良好的问题,但是读取规范和理解细微差别并不容易。让一些平台库程序员为您做艰苦的工作,做好修复工作,这要好得多!</咆哮>
3 回答
尚方宝剑之说
TA贡献1788条经验 获得超4个赞
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;}
添加回答
举报
0/150
提交
取消