1
resposta

Erro no conteúdo da busca

Boa tarde! Percebi que se o nome do filme tiver espaço em branco dá erro "Illegal character". Insira aqui a descrição dessa imagem para ajudar na acessibilidadePor exemplo, tentando buscar o filme "THE GOONIES". Mas testando no site do https://www.omdbapi.com/, percebi que quando eu coloco esse filme com espaço, ele já corrige na url colocando o sinal de "+" no lugar do espaço, ficando assim: http://www.omdbapi.com/?t=THE+GOONIES.

Então fiz o mesmo na execução do código, digitando na tela "THE+GOONIES, aí parou de dar o erro.

Seria essa uma característica da API não aceitar espaço em branco, eu presumo...

1 resposta

Boa noite!

A substituição de espaços por sinal de "+" ou a codificação dos espaços na URL (percent encoding) é uma prática comum ao lidar com parâmetros em URLs. Em muitos casos, espaços em branco não são permitidos em URLs e podem causar erros.

Em Java, você pode utilizar a classe URLEncoder para realizar a codificação de parâmetros em URLs, incluindo a substituição de espaços por "%20" ou "+". Aqui está um exemplo de como você poderia tratar isso:

import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;

public class Main {
    public static void main(String[] args) {
        String nomeDoFilme = "THE GOONIES";

        // Substituir espaços por "+"
        String nomeDoFilmeFormatado = nomeDoFilme.replace(" ", "+");

        // OU Codificar percentualmente os espaços
        try {
            nomeDoFilmeFormatado = URLEncoder.encode(nomeDoFilme, "UTF-8").replace("+", "%20");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace(); // Tratar a exceção conforme necessário
        }

        // Agora você pode usar nomeDoFilmeFormatado na sua URL
        String url = "http://www.omdbapi.com/?t=" + nomeDoFilmeFormatado;
        System.out.println(url);
    }
}