为了账号安全,请及时绑定邮箱和手机立即绑定

在Android上解析查询字符串

在Android上解析查询字符串

眼眸繁星 2019-07-27 15:11:52
在Android上解析查询字符串JavaEEServletRequest.getParameterValue().在非EE平台上,URL.getQuery()只返回一个字符串。在URL中正确解析查询字符串的正常方法是什么?不在Java EE上?<咆哮>在答案中,尝试并创建自己的解析器是很流行的。这是非常有趣和令人兴奋的微编码项目,但是我不能说这是个好主意 :(下面的代码片段通常是有缺陷或坏的,顺便说一句。对读者来说,破解它们是一项有趣的练习。还有黑客攻击使用它们的网站.解析查询字符串是一个定义良好的问题,但是读取规范和理解细微差别并不容易。让一些平台库程序员为您做艰苦的工作,做好修复工作,这要好得多!</咆哮>
查看完整描述

3 回答

?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

这是BalusC的回答,但是它编译并返回结果:

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;}




查看完整回答
反对 回复 2019-07-28
  • 3 回答
  • 0 关注
  • 668 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信