java – 来自commons-httpclient-3.1的URIUtil.encodePath发生了什么?

我想做问题724043中描述的内容,即编码URI的路径组件.建议这样做的课程是Commons HttpClient 3.1的URIUtil.不幸的是,该类似乎已从最新版本的HttpClient中消失.来自HttpClient 4.1,URIUtils的类似命名的类不提供相同的功能.这个类/方法是否被移动到我不知道的其他库或者它刚刚消失了?我最好只将3.1版本中的类复制到我的代码中,还是有更简单的方法?

解决方法:

该模块的维护者已经命令you should use the standard JDK URI类:

The reason URI and URIUtils got replaced with the standard Java URI was
very simple: there was no one willing to maintain those classes.

There is a number of utility methods that help work around various
issues with the java.net.URI implementation but otherwise the standard
JRE classes should be sufficient, should not they?

因此,最简单的方法是查看3.1版本中的encodePath源代码,并复制它在您自己的代码中的作用(或者只是将方法/类复制到您的代码库中).

或者您可以使用您提到的问题接受的答案(但似乎您必须先将URL分成几部分):

new URI(
    "http", 
    "search.barnesandnoble.com", 
    "/booksearch/first book.pdf",
    null).toString();
上一篇:Java Regex用于匹配带引号的字符串和转义引号


下一篇:Java退格逃脱