2010-02-19 1 views
1

Я ищу библиотеку/класс java для анализа чистых URL-адресов и получения всех свойств, таких как запрос, порт, хост, домен, поддомен и т. Д. По существу, большинство функциональность, которую java.net.URI делает, но даже для чистых URL-адресов. Я предполагаю, что, поскольку это довольно распространенное требование, могут быть некоторые библиотеки, уже построенные для этого. Помогите?Библиотека Java/класс для анализа чистых URL-адресов и получения его различных компонентов

ответ

4

java.net.URL класс имеет методы getHost(), getPort(), getQuery(), getPath().

Вы также можете ознакомиться с классом URI, это более предпочтительно использовать его.

+4

Я бы рекомендовал использовать класс URI, так как метод URL.equals() действительно нуждается в реальном соединении и выполняет поиск DNS каждый раз, когда вызывается метод equals(). так что это может быть ад для тестирования в среде, не связанной с сетью. cher ck здесь: http://brian.pontarelli.com/2006/12/05/mr-gosling-why-did-you-make-url-equals-suck/ – fasseg

+0

Хорошее предложение. Я также смотрел презентацию Джоша Блоха на youtube об этом, но не добавил его к моему ответу, потому что это особенно важно, когда объекты URL/URI являются элементами Set или keys в Map, и это не так. – Roman

+0

В настоящее время я использую java.net.URL, но он не работает так хорошо с чистым URL-адресом. Существуют ли какие-либо действия, направленные конкретно на чистые библиотеки URL-адресов? –

0

Стандартные классы Java Url не имеют возможности анализировать параметры запроса. В Commons HTTP Client есть utility class, который имеет полезный метод для этого.