Вопрос

Когда я пытаюсь сократить ссылку символом "#,&", я получаю исключение.Есть ли способ правильно обращаться с этими символами?

Это пример кода, который работает:

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.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top