Некоторые конструкторы URL используют аргумент host
:
URL (Строковый протокол, строка хост , int port, файл String)
URL (строковый протокол, строка хост , int-порт, строковый файл, обработчик URLStreamHandler)
URL-адрес (строковый протокол, строка хост , строковый файл)
1) Почему отсутствует элемент userInfo (аргумент)?В конструкторах URI у меня есть аргументы userInfo
и host
.
2) Что произойдет, если я укажу аргумент host
для URL конструктора от имени ": psw@mysite.com "?
URL u = new URL("http", "user:psw@mysite.com:20", "dir1");
System.out.println(u.getHost());
System.out.println(u.getAuthority());
System.out.println(u.getUserInfo());
System.out.println(u.getPort());
Вывод:
[user:psw@mysite.com:20] // getHost()
[user:psw@mysite.com:20] // getAuthority()
null // getUserInfo()
-1 // getPort()
То, что там происходит, и является new URL("http", "user:psw@mysite.com:20", "dir1")
большой ошибкой программированияили это абсолютно нормально?
Единственное негативное следствие моего примера с крайним регистром состоит в том, что getUserInfo () и getPort () не анализируются правильно?
Я сомневаюсь в этом:
URL u = new URL("http", "mysite.com", "dir1"); // no userInfo / port
System.out.println(u.getHost());
System.out.println(u.getAuthority());
Теперь в выводе нет скобок (!):
mysite.com
mysite.com