H5W3
当前位置:H5W3 > 其他技术问题 > 正文

Java有没有什么好用的包可以直接获取url ?后面的参数?

比如:www.baidu.com?name=test&sex=1,有没有可以直接获取这段url里面的name或者sex参数,或者还有添加参数,比如我现在加个age=28,这样的工具类,有没有推荐的,在线等

回答:

String url = "http://www.baidu.com?a=1&b=2&c=3";
        int index = url.indexOf("?");
        String param = url.substring(index+1);

        String[] params = param.split("&");

        Map<String,String> map = new HashMap<>();

        for (String item:params) {
            String[] kv = item.split("=");
            map.put(kv[0],kv[1]);
        }

        System.out.println(map);
        

{a=1, b=2, c=3}

回答:


import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;

public class UrlUtil {

    /**
     * 增加url后面的get参数
     * 
     * @param url
     * @param name
     * @param value
     * @return url及参数
     */
    public static String addOrReplaceParam(String url, String name, String value) {
        if(value==null ||"".equals(value))return url;
        
        try {
            value =URLEncoder.encode(value,"UTF-8");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        
        if (url.indexOf("&" + name + "=") >= 0
                || url.indexOf("?" + name + "=") >= 0) {
            if (url.indexOf("&" + name + "=") >= 0) {
                url = url.replaceFirst("\\&" + name + "\\=\\w+\\&", "&" + name
                        + "=" + value + "&");
                url = url.replaceFirst("\\&" + name + "\\=\\w+", "&" + name
                        + "=" + value);
            } else {
                url = url.replaceFirst("\\?" + name + "\\=\\w+\\&", "?" + name
                        + "=" + value + "&");
                url = url.replaceFirst("\\?" + name + "\\=\\w+", "?" + name
                        + "=" + value);
            }
            return url;
        } else {
            if (url.indexOf("?") > 0)
                return url + "&" + name + "=" + value;
            else
                return url + "?" + name + "=" + value;
        }

    }
}

回答:

如果用了spring-web的话,有一个 UriComponentBuilder 可以用

本文地址:H5W3 » Java有没有什么好用的包可以直接获取url ?后面的参数?

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址