我想做问题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();