Мне нужны советы по URI API.
Я делаю такой URI
new URI("http", "", "localhost", 9000, "/action", "param=1","")
res0: java.net.URI = http://@localhost:9000/action?param=1#
Как видите, он ставит «@» перед localhost, а также я вижу «#» в конце URI. Как мне от них избавиться? Зачем они едут?




Второй параметр этого конструктора URI - это userInfo ... Установите для него значение null, а не пустую строку.
new URI("http", null, "localhost", 9000, "/action", "param=1", null)
Да, я попробовал этот совет, и вы правы. Спасибо!
Вы устанавливаете userInfo и фрагмент, которые правильно разделяются символами «@» и «#» соответственно.
URI u = new URI("https", null, "localhost", 8080, "/myapi", "q=all", null);
System.out.print(u);
дает
https://localhost:8080/myapi?q=all
возможно, обнуление последнего атрибута также решит проблему #?