如何从 java 中的 URL 字符串获取路径参数

How to get path paramters from URL string in java

我想创建一个函数,它将 URL 字符串作为参数,return MultivaluedHashMap<String, String> 作为输出。我有 url 的格式,通过它我可以构造 UriTemplate class。

所以基本上我想创建类似于 requestContext.getUriInfo().getPathParameters()

的功能

所以我的函数将是

public MultivaluedHashMap<String, String> getPathParamtersFromUrl(string url)
{
}

我不知道如何得到这个。 注意:我不想提取查询参数。我想提取路径参数。

这会给你除http方案和域名之外的路径参数列表。

    public static void main(String[] args) {
    String url = "";
    System.out.println("The path parameters of url:" + url);
    List<String> p = getPathParamtersFromUrl(url);
    p.stream().forEach(x -> System.out.println(x));
}

private static List<String> getPathParamtersFromUrl(String url) {
    String[] path = url.split("\?");
    String[] pathparams = path[0].split("\//");
    String[] param = pathparams[1].split("\/");
    List<String> p = Arrays.asList(param);
    return p.stream().filter(x -> !x.contains(".")).collect(Collectors.toList());
}

在仔细查看 UriTemplate class 后,我找到了解决方案 class。

 private MultivaluedMap<String, String> getPathParameters(String uri, String strUrlTemplate) {

        UriTemplate template = new UriTemplate(strUrlTemplate);
        Map<String, String> parameters = new HashMap<>();
        Boolean value = template.match(uri, parameters);
        return new MultivaluedHashMap(parameters);

    }