40

我需要在 Java 中进行一些非常简单的 URL 操作。就像在查询中获取参数的值,或者更新它,......我期待在 commons-lang 包中找到一个简单的实用程序类,但没有。我知道这是一个简单的问题,但是如果已经写了一些东西,为什么还要再写一次呢?你知道吗?

我希望至少具备以下能力:

String myUrl = "http://www.example.com/test.html?toto=1&titi=2";

// get the value of a parameter
String parameterValue = UrlUtils.getParameterValue(myUrl, "toto");
Assert.equals(parameterValue, "1");

// update a parameter
String newUrl = UrlUtils.updateParameter(myUrl, "toto", 3);
parameterValue = UrlUtils.getParameterValue(myUrl, "toto");
Assert.equals(parameterValue, "3");

理想情况下,它将处理所有与编码相关的问题,并与 java.net.Url 以及字符串一起使用。

谢谢你的帮助 !

4

3 回答 3

7

我认为你想要的是一个查询字符串解析器而不是一个 url 操纵器,这是一个: http: //ostermiller.org/utils/CGIParser.java.html

于 2008-10-20T14:39:51.557 回答
4

Apache 的 httpcomponents 库有一个 URL 解码器:http: //hc.apache.org/httpcomponents-client-ga/httpclient/apidocs/org/apache/http/client/utils/URLEncodedUtils.html

Httpcomponents 是 commons http 客户端的继承者。

于 2011-02-10T19:21:22.703 回答
3

Indeed 发布了一个用于查询字符串和数字解析的高效 Java 库:

http://engineering.indeed.com/blog/2014/02/efficient-query-string-parsing-util-urlparsing/

https://github.com/indeedeng/util/tree/master/urlparsing

(免责声明:我是 Indeed 的工程总监。)

于 2014-02-23T21:09:16.173 回答