Я хочу сделать то, что описало рассматриваемые 724043, а именно, закодируйте компоненты контура URI. Класс рекомендовал сделать, который является URIUtil из палаты общин HttpClient 3.1. К сожалению, тот класс, кажется, исчез из новой версии HttpClient. Столь же именованный класс от HttpClient 4.1, URIUtils, не обеспечивает ту же функциональность. Этот класс/метод был перемещен в некоторую другую библиотеку, о которой я не знаю или это просто ушел? Я лучше всего от просто копирования класса от этих 3,1 выпусков в мой код или являюсь там более простым путем?
Сопровождающие модуля постановили, что вы должны использовать стандартный класс JDK URI вместо него:
Причина, по которой URI и URIUtils были заменены на стандартный Java URI, очень проста. очень проста: не было желающих поддерживать эти классы.
Существует ряд полезных методов, которые помогают обойти различные проблемы с реализацией java.net.URI, но в остальном стандартные JRE классы должны быть достаточными, не так ли?
Итак, самое простое - это посмотреть на исходник encodePath из релиза 3.1 и продублировать то, что он делает в вашем собственном коде (или просто скопировать метод/класс в вашу кодовую базу).
Или вы можете воспользоваться принятым ответом на вопрос, на который вы ссылались (но, кажется, сначала нужно разбить URL на части):
new URI(
"http",
"search.barnesandnoble.com",
"/booksearch/first book.pdf",
null).toString();