1
resposta

[Sugestão] Padrão de pesquisa na URL com URLEncoder.encode(...):

System.out.println("Digite um filme para buscar: "); 
var busca = leitura.nextLine();
# Quando alguém digitou:
Top Gun  

# A URL ficou assim:
http://www.omdbapi.com/?t=Top Gun&apikey=XXXX 

O problema é que espaço não pode existir em URL.
Isso gera:
IllegalArgumentException: Illegal character in query

Quando tratamos o resultado dessa busca com o 
var resultado = URLEncoder.encode(busca, StandardCharsets.UTF_8);
transformamos o espaço entre Top Gun  em Top+Gun ou Top%20Gun

Agora a URL fica válida:
http://www.omdbapi.com/?t=Top+Gun&apikey=XXXX

Por que isso funciona?

URLEncoder.encode(...):

Substitui espaços por +

Converte caracteres especiais (ç, ã, ?, etc.)

Garante que a URL fique no padrão correto

Isso é essencial sempre que o usuário digita algo que vai na URL.
1 resposta

Oi, Smalley! Como vai?

Gostei da sua análise sobre o uso do URLEncoder.encode(...), ficou bem clara a explicação do motivo do erro acontecer.

Quando digitamos "Top Gun" direto na URL, o espaço realmente quebra o padrão esperado, e a codificação transforma esse valor em um formato válido para transmissão na web. Sua explicação sobre a substituição por + ou %20 e a conversão de caracteres especiais mostrou bem a importância desse cuidado ao consumir APIs.

Continue explorando esses detalhes, eles fazem diferença no desenvolvimento.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!