«user: psw@mysite.com» в качестве аргумента хоста для конструктора URL - PullRequest
0 голосов
/ 24 июня 2019

Некоторые конструкторы 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
...