zoukankan      html  css  js  c++  java
  • 按照参数名称的字典顺序对请求中所有的请求参数(包括公共请求参数和接口的自定义参数,但不包括公共请求参数中的Signature参数)进行排序

    参数进行字典顺序排序;

    调用阿里云消息队列RocketMQ版 http调用方式请求接口所需

        /**
         * @param paraMap   请求参数
         * @param urlEncode  是否utf-8编码
         * @return
         */
        public static String formatUrlMap(Map<String, String> paraMap, boolean urlEncode)
        {
            String buff = "";
            Map<String, String> tmpMap = paraMap;
            try
            {
                List<Map.Entry<String, String>> infoIds = new ArrayList<Map.Entry<String, String>>(tmpMap.entrySet());
                // 对所有传入参数按照字段名的 ASCII 码从小到大排序(字典序)
                Collections.sort(infoIds, new Comparator<Map.Entry<String, String>>()
                {
    
                    @Override
                    public int compare(Map.Entry<String, String> o1, Map.Entry<String, String> o2)
                    {
                        return (o1.getKey()).toString().compareTo(o2.getKey());
                    }
                });
                // 构造返回字符串键值对的格式
                StringBuilder buf = new StringBuilder();
                for (Map.Entry<String, String> item : infoIds)
                {
                    if (StringUtils.isNotBlank(item.getKey()))
                    {
                        String key = item.getKey();
                        String val = item.getValue();
                        if (urlEncode)
                        {
                            val = URLEncoder.encode(val, "utf-8");
                        }
    
                        buf.append(key + "=" + val);
                        buf.append("&");
                    }
    
                }
                buff = buf.toString();
                if (buff.isEmpty() == false)
                {
                    buff = buff.substring(0, buff.length() - 1);
                }
            } catch (Exception e)
            {
                return null;
            }
            return buff;
        }
  • 相关阅读:
    构建可靠的系统
    netty详解之reactor模型
    netty详解之io模型
    小明的魔法调度框架之旅
    JAVA版-微信高清语音.speex转.wav格式
    Spring Data JPA 缓存结合Ehcache介绍
    @media print样式 关于table断页
    JBPM学习第6篇:通过Git导入项目
    JBPM学习第5篇:Mysql配置
    JBPM学习第4篇:10分钟熟悉Eclipse
  • 原文地址:https://www.cnblogs.com/qq376324789/p/15009762.html
Copyright © 2011-2022 走看看