使用guava的Joiner进行url传参

首先,需要在你的pom.xml中添加guava依赖

<dependencies>
        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>18.0</version>
        </dependency>
</dependencies>

url中传参通常以id=123&name=456,如果name为中文,则需要对其encode转义成utf-8格式.
我们现在写一段代码来测试一下

public class Test {
    public static void main(String[] args) {
        Map<String, String> map = Maps.newHashMap();
        map.put("id", "123");
        map.put("name", "张三");
        final Map<String, String> newMap = Maps.newHashMap();
        map.forEach((k,v) -> {
            //若v为null,则不显示该参数
            if (v != null) {
                try {
                    newMap.put(k, URLEncoder.encode(v, "UTF-8"));
                } catch (UnsupportedEncodingException e) {
                    e.printStackTrace();
                }
            }
        });
        //map以&分割,如果v为null,用""替换,k与v以=分割
        String joiner = Joiner.on("&").useForNull("").withKeyValueSeparator("=").join(newMap);
        System.out.print(joiner);
    }
}

打印出来的结果是
name=%E5%BC%A0%E4%B8%89&id=123

发布了7 篇原创文章 · 获赞 0 · 访问量 1243

猜你喜欢

转载自blog.csdn.net/weixin_32896095/article/details/104548298