Як використовувати виключені роздільники в URI

Мені потрібно створити об'єкт java URL, надавши представлення, що містить роздільник, який виключено для символів US_ASCII. Ви можете знайти тут специфікацію 2.4.3. Виключено символи США-ASCII .

Наприклад,

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

або

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

Хто-небудь знає обхідний шлях?

0

2 Відповіді

Як правило, 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
додано

Can't you encode the character? So # => %23 and % => %25. See more information on W3Schools

1
додано
Будь ласка, не посилайтеся на W3Schools. Він повний помилок і неправдивих порад. Див. w3fools.com
додано Автор forty-two, джерело
Я боюся, що Particalar сторінка повна безглуздих заяв, як "кодування URL перетворює символи в формат, який може бути переданий через Інтернет" і помилки, такі як confuisng правильне кодування URL з додатком/x-www-форма-urlencoded MIME типу \ t .
додано Автор forty-two, джерело
Ну, на щастя, ця сторінка не була в списку помилок ;-) У будь-якому випадку, спасибі за голови. Я не знав про більшість цих помилок, але це, мабуть, тому, що я ніколи не відвідував більшість цих сторінок.
додано Автор Pieter, джерело
Ну, краще посилання, мабуть, вікіпедія, але, на щастя, дві кодування в таблиці на W3Schools є правильними :-) en.wikipedia.org/wiki/Percent-кодування
додано Автор Pieter, джерело
ІТ КПІ - Java
ІТ КПІ - Java
436 учасників