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

Foi útil?

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
scroll top