Проблема с персонажами в Bit.ly
Вопрос
Когда я пытаюсь сократить ссылку символом "#,&", я получаю исключение.Есть ли способ правильно обращаться с этими символами?
Это пример кода, который работает:
String shortUrl = bitly.getShortUrl("http://z"); //Works
Если я добавлю, например, '&' или '%25' к строке, это вызовет исключение:
String shortUrl = bitly.getShortUrl("http://z%26"); // Exception
String shortUrl = bitly.getShortUrl("http://z&"); // Exception
Тот Самый getShortUrl
функция из этот Java-класс.
Спасибо
Решение
Эта библиотека (класс Java, на который вы ссылаетесь) не экранирует URL...это довольно ужасно.
Отрывок:
private String getBitlyHttpResponseText(String urlToShorten) throws IOException {
String uri = getBitlyUrl() + urlToShorten + bitlyAuth;
HttpGet httpGet = new HttpGet(uri);
...
Обратите внимание , как urlToShorten
никоим образом не экранируется, ни в какой форме.Склонен к атакам в стиле инъекций и просто обычно не работает.
В любом случае, тебе нужно будет сбежать urlToShorten
.
Не связан с StackOverflow