Squeak.ru - шаблоны программирования

Как разобрать URL, если протокол не http или https?

Мой вопрос: как разобрать URL-адрес, где протокол отличается?

String str = "olqmeeting://192.168.43.55/uam/meeting/meeting.php?id=A72U5AF9";
URL url = new URL(str);
26.10.2015

  • Что вы подразумеваете под парсингом URL? Если нет URLStreamHandler, который знает, как обрабатывать протокол olqmeeting, вы получите MalformedURLException за неизвестный протокол. 26.10.2015
  • его работа: URL-адрес URI = новый URI (olqmeeting+://+serverName+/uam/meeting/meeting.php?type=+type); System.out.println(Схема: +url.getScheme()); System.out.println(Имя хоста: +url.getHost()) 26.10.2015

Ответы:


1

Вы можете использовать класс URI для анализа этих URL-адресов. Это будет работать ... хотя вы ограничены операциями с самим URL-адресом, а не с ресурсом, на который он ссылается. (Дополнительную информацию см. в URI javadoc. подробности.)

Если вы хотите, чтобы URL работал (и имел возможность «подключаться» к ресурсу), вам необходимо реализовать и настроить URLStreamHandlerFactory, который (минимально) понимает протокол URL-адреса и способы его обработки.

(Если вы не укажете ненулевой URLStreamHandlerFactory явно при создании объекта URL, конструктор попытается найти значение по умолчанию для протокола URL. Если он не может этого сделать, вы получите MalformedURLException.)

26.10.2015

2

URL имеет другие конструкторы, где вы можете определить протокол

URL(String protocol, String host, int port, String file)
Creates a URL object from the specified protocol, host, port number, and file.
URL(String protocol, String host, int port, String file, URLStreamHandler handler)
Creates a URL object from the specified protocol, host, port number, file, and handler.
URL(String protocol, String host, String file)
Creates a URL from the specified protocol name, host name, and file name.

В конце концов вы даже можете использовать метод .set(), но он защищен, поэтому вам нужно реализовать новый пользовательский класс URL.

26.10.2015
  • при попытке проанализировать, чтобы получить имя хоста и получить протокол, он дает исключение MalformedURLException для неизвестного протокола. Могу ли я создать собственный протокол ?? 26.10.2015
  • @SalikReza см. здесь stackoverflow.com/questions/26363573/ 26.10.2015
  • Новые материалы

    Угловая структура архитектуры
    Обратите внимание, что эта статья устарела, я решил создать новую с лучшей структурой и с учетом автономных компонентов: https://medium.com/@marekpanti/angular-standalone-architecture-b645edd0d54a..

    «Данные, которые большинство людей используют для обучения своих моделей искусственного интеллекта, поставляются со встроенным…
    Первоначально опубликовано HalkTalks: https://hacktown.com.br/blog/blog/os-dados-que-a-maioria-das-pessoas-usa-para-treinar-seus-modelos-de-inteligencia-artificial- ja-vem-com-um-vies-embutido/..

    Сильный ИИ против слабого ИИ: различия парадигм искусственного интеллекта
    В последние годы изучению и развитию искусственного интеллекта (ИИ) уделяется большое внимание и прогресс. Сильный ИИ и Слабый ИИ — две основные парадигмы в области искусственного интеллекта...

    Правильный способ добавить Firebase в ваш проект React с помощью React Hooks
    React + Firebase - это мощная комбинация для быстрого и безопасного создания приложений, от проверки концепции до массового производства. Раньше (знаете, несколько месяцев назад) добавление..

    Создайте API с помощью Python FastAPI
    Создание API с помощью Python становится очень простым при использовании пакета FastAPI. После установки и импорта вы можете создать приложение FastAPI и указать несколько конечных точек. Каждой..

    Веселье с прокси-сервером JavaScript
    Прокси-серверы JavaScript — это чистый сахар, если вы хотите создать некоторую общую логику в своих приложениях, чтобы облегчить себе жизнь. Вот один пример: Связь клиент-сервер Мы..

    Получить бесплатный хостинг для разработчиков | Разместите свой сайт за несколько шагов 🔥
    Статические веб-сайты — это веб-страницы с фиксированным содержанием и его постоянным содержанием. Но теперь статические сайты также обрабатывают динамические данные с помощью API и запросов...