Решение
Хорошо, я нашел одно решение на Stackoverflow после небольшого поиска, но я надеюсь сделать это без дополнительных библиотек. Как проверить допустимый URL-адрес на Java?
Моя проблема:
Сначала мы надеемся, что это не дубликат, но я не смог найти правильный ответ (сразу). Я хотел бы подтвердить, что URI (http) действителен в Java. Я придумал следующие тесты, но я не могу заставить их пройти. Сначала я использовал getPort(), но затем http://www.google.nl вернет -1 на getPort(). Это тест, который я хочу пройти
Тест:
@Test
public void testURI_Isvalid() throws Exception {
    assertFalse(HttpUtils.validateHTTP_URI("ttp://localhost:8080"));
    assertFalse(HttpUtils.validateHTTP_URI("ftp://localhost:8080"));
    assertFalse(HttpUtils.validateHTTP_URI("http://localhost:8a80"));
    assertTrue(HttpUtils.validateHTTP_URI("http://localhost:8080"));
    final String justWrong = 
        "/schedule/get?uri=http://localhost:8080&time=1000000";
    assertFalse(HttpUtils.validateHTTP_URI(justWrong));
    assertTrue(HttpUtils.validateHTTP_URI("http://www.google.nl"));
}
Это то, что я придумал после того, как я удалил часть getPort(), но это не передает все мои модульные тесты.
Производственный код:
  public static boolean validateHTTP_URI(String uri) {
        final URI u;
        try {
            u = URI.create(uri);
        } catch (Exception e1) {
            return false;
        }
        return "http".equals(u.getScheme());
  }
Это первый тест, который терпит неудачу, потому что я больше не проверяю часть getPort(). Надеюсь, кто-то может мне помочь. Я думаю, что я не использую правильный класс для проверки URL-адресов?
P.S:
Я не хочу подключаться к серверу для проверки правильности URI. По крайней мере, еще не на этом этапе. Я хочу только проверить схему.
