【问题标题】:Standard Java Class for common URL/URI manipulation用于常见 URL/URI 操作的标准 Java 类
【发布时间】:2016-05-11 14:14:51
【问题描述】:

这个问题之前几乎肯定有人问过,但我还是问了,因为我找不到答案。

一般来说,是否有某种实用程序类可以帮助处理与 URL/URI 相关的常见字符串操作?

我正在考虑类似于 Java SE 的 URL 类,但可能更强大一些。我正在寻找可以让你做简单事情的东西,比如:

  • 获取查询字符串参数列表
  • 添加参数的“addParameter”方法 查询字符串参数,它会 注意添加“&”、“?”和“=” 必要时
  • 另外,编码 参数值将是理想的...

告诉我,谢谢!

【问题讨论】:

  • 好问题。我找不到一个好的,所以我自己做了。我想在这里看到建议。
  • Java SE 中没有任何东西可以对查询字符串做任何有趣的事情,这是一个众所周知且饱受抱怨的空白。对于其他一切,有 java.net.URI,我建议首选 java.net.URL,因为除其他外,它有一个健全的 equals() 实现。
  • 查看 Galimatias - 一个用 Java 编写的 URL 解析和规范化库 github.com/smola/galimatias

标签: java


【解决方案1】:

实际上(奇怪的是)没有任何标准可以做到这一切。有一些零碎,通常埋在各种util包中:

我使用http://java.net/projects/urlencodedquerystring/pages/Home 获得了不错的效果(用于提取参数)。

Atlassian 的 JIRA 有 http://docs.atlassian.com/jira/4.2/index.html?com/atlassian/jira/util/UrlBuilder.html,我实际上已经从 jar 中提取并使用了它。

在 Android 上,http://developer.android.com/reference/android/net/Uri.Builder.html 是一个 Uri 构建器,可以轻松构建 url。

最后,在历史重演的经典案例中:A good library to do URL Query String manipulation in Java

我真的只是删除 android.net.Uri.Builder 类并将其与 urlencodedquerystring 类配对,然后随身携带,但这似乎是 Apache commons 包的一个很好的候选者。

【讨论】:

  • 太棒了,感谢您的精彩回复!我之前也在一些各种专有库中遇到过类似的代码,这就是引发这个问题的原因。我想我会采纳你的建议的!我将把这个问题留待一段时间,看看我是否会收到任何其他回复。
  • 接受这个答案。此外,Tom Anderson 对主要问题的评论也很有帮助。
  • 这是另一个问题,建议从地图创建 url 编码的查询字符串。 stackoverflow.com/questions/2809877/…
  • 这也已在 Guava 问题页面 code.google.com/p/guava-libraries/issues/detail?id=1005 上讨论过,他们目前还没有实现自己的库,但有人建议使用 Jersey 提供的 UriBuilder
  • Apache http 组件还带有URI builder。不幸的是,它在 http 客户端而不是在 http 核心模块中,这是我所期望的。
【解决方案2】:

我个人喜欢来自 jax-rs 的 UriBuilder

【讨论】:

    【解决方案3】:

    这并不能直接回答 OP 的问题(它不是一个通用的、全方位的 URL 操作库),但是:如果您要使用Spring 无论如何,你不妨考虑 ServletUriComponentsBuilderUriComponentsBuilder 类(参见 herehere 的 javadocs)。

    我相信它们与 spring-web 依赖项捆绑在一起。恕我直言,这些提供了很多方便的实用方法来处理 URI、URL 和查询参数。

    【讨论】:

      猜你喜欢
      • 2012-05-07
      • 1970-01-01
      • 1970-01-01
      • 2011-05-16
      • 1970-01-01
      • 2016-10-22
      • 1970-01-01
      • 1970-01-01
      • 2010-10-24
      相关资源
      最近更新 更多