【问题标题】:How to get path paramters from URL string in java如何从java中的URL字符串中获取路径参数
【发布时间】:2016-11-04 17:16:49
【问题描述】:

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

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

所以我的功能是

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

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

【问题讨论】:

  • 您在编写代码的哪个部分有问题?向我们展示您拥有的东西,并解释哪一部分让您感到困扰。

标签: java jersey-2.0


【解决方案1】:

在仔细查看 UriTemplate 类后,我能够找出解决方案。

 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);

    } 

【讨论】:

    【解决方案2】:

    这将为您提供除 http 方案和域名之外的路径参数列表。

        public static void main(String[] args) {
        String url = "http://stackoverflow.com/questions/40428388/how-to-get-path-paramters-from-url-string-in-java";
        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());
    }
    

    【讨论】:

      猜你喜欢
      • 2011-05-08
      • 2010-11-06
      • 2012-07-13
      • 2018-11-13
      • 2011-07-20
      • 2016-12-03
      • 2021-03-24
      • 2021-06-08
      • 1970-01-01
      相关资源
      最近更新 更多