Как удалить фрагмент из URI

Мне нужны советы по URI API.

Я делаю такой URI

new URI("http", "", "localhost", 9000, "/action", "param=1","")
res0: java.net.URI = http://@localhost:9000/action?param=1#

Как видите, он ставит «@» перед localhost, а также я вижу «#» в конце URI. Как мне от них избавиться? Зачем они едут?

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
2
0
538
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Второй параметр этого конструктора URI - это userInfo ... Установите для него значение null, а не пустую строку.

new URI("http", null, "localhost", 9000, "/action", "param=1", null)

возможно, обнуление последнего атрибута также решит проблему #?

Sir. Hedgehog 13.12.2018 16:11

Да, я попробовал этот совет, и вы правы. Спасибо!

Mojo 13.12.2018 16:13

Вы устанавливаете userInfo и фрагмент, которые правильно разделяются символами «@» и «#» соответственно.

URI u = new URI("https", null, "localhost", 8080, "/myapi", "q=all", null);
System.out.print(u);

дает

https://localhost:8080/myapi?q=all

Другие вопросы по теме