Я пытаюсь подключиться к URL в Java.Но я получаю следующее исключение.Я пытался использовать URLEncoder для кодирования URL в utf-8, но все еще получаю следующее исключение при попытке подключиться к следующему URL:
URL:
String url = "http://bbb.org/classify/id?itemId=15652722&event=ITEM.RECLASSIFY&classifierName=ListingClassifier&appId=ListingClassifier&payload={\"source\":\"test\"}";
Exception:
Caused by: java.net.URISyntaxException: Illegal character in query at index 148: http://bbb.org/classify/id?itemId=15652722&event=ITEM.RECLASSIFY&classifierName=ListingClassifier&appId=ListingClassifier&payload={"source":"test"} at java.net.URI$Parser.fail(URI.java:2848) at java.net.URI$Parser.checkChars(URI.java:3021) at java.net.URI$Parser.parseHierarchical(URI.java:3111) at java.net.URI$Parser.parse(URI.java:3053) at java.net.URI.<init>(URI.java:588) at java.net.URI.create(URI.java:850)
В основном, исключение происходит в "{".Пожалуйста, предложите, что не так с URL.
Пробная кодировка, как показано ниже:
String url = "http://bbb.org/classify/id?itemId=15652722&event=ITEM.RECLASSIFY&classifierName=ListingClassifier&appId=ListingClassifier&payload={\"source\":\"test\"}"; url = URLEncoder.encode(url, "UTF-8");
Но кодировка не решила проблему.
Вам необходимо закодировать URI для замены недопустимых символов (если они есть) на допустимые закодированные символы ... что-то вроде этого:
URI
From URLEncoder Документация класса:
public static String encode(String s, String enc) Переводит строку в формат application / x-www-form-urlencoded с использованием специальной схемы кодирования.Этот метод использует предоставленную схему кодирования для получения байтов для небезопасных символов .
public static String encode(String s, String enc)
Переводит строку в формат application / x-www-form-urlencoded с использованием специальной схемы кодирования.Этот метод использует предоставленную схему кодирования для получения байтов для небезопасных символов .