在和外部公司联调HTTP接口时,对方要求调用的接口需要计算token,给到的规则如下: 
   1) 所有的参数值必须经过urlencode,编码为utf-8; 
   2) 对编码后数据按照key值进行字典升序排序; 
   3)将所有的参数按照排序的顺序拼接成字符串 ,格式如下: k1=v1&k2=v2&k3=v3; 
   4)  将第三步的算出的值计算md5值,md5加密的值小写 
   请你编写一段方法计算token值 
                                        ["query=中文","version=1.0.0"]
"be61411477191613e6df13bde939297a"
请注意会有中文;
    public String getToken(Map<String, String> params) {
        List<String> ss = params.keySet().stream().sorted().map(
            k -> {
                String v = params.get(k);
                String kv = null;
                try {
                    kv = k + "=" + URLEncoder.encode(v, "utf-8");
                } catch (Exception e) {
                }
                return kv;
            }
        ).collect(Collectors.toList());
        String token = null;
        try {
            token = new String(MessageDigest.getInstance("md5").digest(String.join("&", ss).getBytes()));
        } catch (Exception e) {
        }
        return token;
    }