Существует ли «стандартный» способ анализа: пустые URL в Java? - PullRequest
2 голосов
/ 17 февраля 2011

Со следующим фрагментом кода, если docurl = "about: blank", я получаю исключение java.net.MalformedURLException.Я не могу поверить, что я первый, кто должен обрабатывать такие URL, поэтому мне интересно, есть ли другой API, чем java.net, который я могу использовать?

        try {
            URL url;
            url = new URL(docurl);
            docuri = new URI(url.getProtocol(), url.getHost(), url.getPath(), url.getQuery(), null);
        } catch (MalformedURLException e) {
                e.printStackTrace();
        } catch (URISyntaxException e) {
            e.printStackTrace();
        }

Ответы [ 2 ]

2 голосов
/ 17 февраля 2011

Проблема в том, что в протоколе about отсутствует действительный обработчик.

Действительные обработчики для моей установки jre6 находятся в rt.jar

sun/net/www/protocol/ftp/Handler.class
sun/net/www/protocol/gopher/Handler.class
sun/net/www/protocol/http/NegotiateCallbackHandler.class
sun/net/www/protocol/mailto/Handler.class
sun/net/www/protocol/netdoc/Handler.class
sun/net/www/protocol/http/Handler.class
sun/net/www/protocol/jar/Handler.class
sun/net/www/protocol/file/Handler.class

Вы можете сделатьсобственный класс обработчиков, следуя рецепту на http://java.sun.com/developer/onlineTraining/protocolhandlers/

0 голосов
/ 02 января 2014

Вы можете анализировать такие URL с помощью java.net.URI .

В качестве альтернативы я написал библиотеку разбора URL-адресов Java, которая предлагает более общее решение: galimatias .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...