Как использовать исключенные разделители в URI - PullRequest
0 голосов
/ 28 октября 2011

Мне нужно создать объект URL Java, предоставив представление, содержащее разделитель, который исключен для символов US_ASCII. Вы можете найти спецификацию здесь 2.4.3. Исключенные символы US-ASCII .

Например,

http://localhost:8182/a%image.tif

или

http://localhost:8182/a#image.tif

Кто-нибудь знает обходной путь?

Ответы [ 2 ]

1 голос
/ 28 октября 2011

Как правило, URI может быть безопасно создан только путем кодирования отдельных компонентов перед их сборкой в ​​окончательный URI. В этом случае a%image.gif является компонентом пути и должен быть закодирован в соответствии с производством пути (3.3 в rfc 2369).

Используйте java.net.URI для создания легального URI (и URL):

    URI uri = URI.create("http://localhost:8182/a%25image.gif");
    System.out.println(uri.toASCIIString());
    System.out.println(uri.getPath());

Вы должны увидеть выходные данные последнего оператора без кодировки.

Технически, второй URL не является недопустимым, image.gif, будет рассматриваться как фрагмент. Но если хеш-символ является частью пути, он, конечно, также должен быть закодирован.

1 голос
/ 28 октября 2011

Не можете ли вы закодировать символ?Так # =>% 23 и% =>% 25.Подробнее о W3Schools

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