Как создать URL-адрес или URI в Java? Есть ли идиоматический способ или библиотеки, которые легко это делают?
Мне нужно разрешить запуск со строки запроса, анализировать / изменять различные части URL-адреса (схема, хост, путь, строка запроса) и поддерживать добавление и автоматическое кодирование параметров запроса.
Ответы:
Что касается HTTP-компонента Apache HttpClient 4.1.3, из официального руководства :
Изменить: начиная
URIUtils.createURI()
с версии 4.2 устарел в пользуURIBuilder
:источник
URIBuilder builder = new URIBuilder() .setScheme("http") .setHost("www.google.com") .setParameters(qparams);
как сказал @stianКак автор, я, вероятно, не лучший человек, чтобы судить о том, хорош ли мой построитель URL / URI , но, тем не менее, вот он: https://github.com/mikaelhg/urlbuilder
Мне нужно было как можно более простое полное решение с нулевыми зависимостями вне JDK, поэтому мне пришлось применить собственное.
источник
Apache HTTPClient ?
источник
Использование HTTPClient сработало.
источник
Существует множество библиотек, которые могут помочь вам в создании URI (не изобретайте велосипед). Вот три, с чего можно начать:
Java EE 7
org.apache.httpcomponents: HttpClient: 4.5.2
org.springframework: весна-страница: 4.2.5.RELEASE
См. Также: GIST> Тесты построителя URI
источник
UriBuilder
( docs.spring.io/spring-framework/docs/current/javadoc-api/org/… ) иUriBuilderFactory
( docs.spring.io/spring-framework/docs/current/javadoc-api/org /… )Используйте OkHttp
Это 2020 и есть очень популярная библиотека имени OkHttp которая помечено 35k раз на GitHub. С помощью этой библиотеки вы можете создать URL-адрес, как показано ниже:
источник
addPathSegment
(неaddPathSegments
).После критики за предложение класса URL. Я воспользуюсь советом комментатора и предложу вместо этого класс URI . Я предлагаю вам внимательно изучить конструкторы URI, поскольку после создания класс становится неизменным.
Я думаю, что этот конструктор позволяет вам установить в URI все, что вам может понадобиться.
источник