Personagens problema em bit.ly
Pergunta
Quando tento reduzir um link com o personagem "#, &", recebo uma exceção. Existe uma maneira de lidar com esse personagem corretamente?
Este é um código de amostra que funciona:
String shortUrl = bitly.getShortUrl("http://z"); //Works
Se eu acrescentar, por exemplo, '&' ou '%25' à string, ele lançará uma exceção:
String shortUrl = bitly.getShortUrl("http://z%26"); // Exception
String shortUrl = bitly.getShortUrl("http://z&"); // Exception
o getShortUrl
função de Esta aula de Java.
Obrigado
Solução
Essa biblioteca (a classe Java com a qual você vincular) não escapa do URL ... isso é horrível.
Excerto:
private String getBitlyHttpResponseText(String urlToShorten) throws IOException {
String uri = getBitlyUrl() + urlToShorten + bitlyAuth;
HttpGet httpGet = new HttpGet(uri);
...
Note como urlToShorten
não é escapar de forma alguma, forma ou forma. Propenso a ataques no estilo de injeção, e geralmente não funciona.
Enfim, você precisará escapar urlToShorten
.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow