将map中的查询参数拼装到URL路径中


被调接口的URL路径:

//被调接口url
String apiUrl = "http://api.open.xxxxxx.com/implatform/interview/send?access_token=551c619ef13c45debe92a64880f5e1cdlzJv";

将下面的key和value放到一个map中:

phonetype:1
phone:15666888553
name:张三

将map中的key和value拼装成"&phonetype=1&phone=15666888553&name=张三"这种形式:

    public static String getUrlParamsByMap(Map<String, Object> map) {
        if (map == null) {
            return "";
        }
        StringBuffer sb = new StringBuffer();
        for (Map.Entry<String, Object> entry : map.entrySet()) {
            sb.append(entry.getKey() + "=" + entry.getValue());
            sb.append("&");
        }
        String s = sb.toString();
        if (s.endsWith("&")) {
            s = s.substring(0, s.length() - 1);
            //s = org.apache.commons.lang.StringUtils.substringBeforeLast(s, "&");
        }
        return s;
    }

将上面的被调接口URL和拼装好的查询参数组装起来:

    //合并两部分url
    public static String urlCombine(String path1, String path2){
        if(CommonUtil.isNullOrEmpty(path1)) throw new NullArgumentException("path1");

        if (CommonUtil.isNullOrEmpty(path2)) path2 = "";

        path1 = CommonUtil.trimEnd(path1, "?");
        path1 = CommonUtil.trimEnd(path1, "&");

        path2 = CommonUtil.trimStart(path2,"?");
        path2 = CommonUtil.trimStart(path2,"&");

        if (path1.indexOf("?")>-1){
            return path1+"&"+path2;
        }
        else{
            return path1+"?"+path2;
        }
    }

组装后就像下面这样(只是举例):

http://api.open.xxxxxx.com/implatform/interview/send?access_token=551c619ef13c45debe92a64880f5e1cdlzJv&phonetype=1&phone=15666888553&name=张三

 

如果觉得本文对您有帮助,不妨扫描下方微信二维码打赏点,您的鼓励是我前进最大的动力:

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM