Falta pouco!

0 dias

0 horas

0 min

0 seg

Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Código não encontra nome de filme Pesquisado

Saudações pessoal, td bem com vcs?

Aqui está o código:

package br.com.alura.screenmatch.principal;

import java.io.IOException;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.util.Scanner;

public class PrincipalComBusca {

    public static void main(String[] args) throws IOException, InterruptedException {
        Scanner filme = new Scanner(System.in);
        System.out.println("Digite o nome do titulo: ");
        var titulo = filme.nextLine();

        String endereco = "http://www.omdbapi.com/?i= " + titulo + " &apikey=e21d94cf";

        HttpClient client = HttpClient.newHttpClient();
        HttpRequest request = HttpRequest.newBuilder()
                .uri(URI.create(endereco))
                .build();

        HttpResponse<String> response = client
                .send(request, HttpResponse.BodyHandlers.ofString());
        System.out.println(response.body());

    }
}

Porém recebo erro no Terminal, percebo que pelo nome do filme não está encontrando, mas tbm é muito onoroso e quase impossível tbm saber o código do filme e procurar por ele. Na verdade quero encontrar pelo nome do filme. No terminal tenho essa resposta ao rodar o código:

C:\Users\palom\.jdks\corretto-24.0.1\bin\java.exe "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2025.2.1\lib\idea_rt.jar=63412" -Dfile.encoding=UTF-8 -Dsun.stdout.encoding=UTF-8 -Dsun.stderr.encoding=UTF-8 -classpath C:\Users\palom\IdeaProjects\2944-java-screenmatch-consumindo-webservice\out\production\2944-java-screenmatch-consumindo-webservice br.com.alura.screenmatch.principal.PrincipalComBusca
Digite o nome do titulo: 
Guardians of Galaxy Vol. 2
Exception in thread "main" java.lang.IllegalArgumentException: Illegal character in query at index 35: http://www.omdbapi.com/?i=Guardians of Galaxy Vol. 2&apikey=e21d94cf
    at java.base/java.net.URI.create(URI.java:932)
    at br.com.alura.screenmatch.principal.PrincipalComBusca.main(PrincipalComBusca.java:21)
Caused by: java.net.URISyntaxException: Illegal character in query at index 35: http://www.omdbapi.com/?i=Guardians of Galaxy Vol. 2&apikey=e21d94cf
    at java.base/java.net.URI$Parser.fail(URI.java:2995)
    at java.base/java.net.URI$Parser.checkChars(URI.java:3166)
    at java.base/java.net.URI$Parser.parseHierarchical(URI.java:3254)
    at java.base/java.net.URI$Parser.parse(URI.java:3196)
    at java.base/java.net.URI.<init>(URI.java:645)
    at java.base/java.net.URI.create(URI.java:930)
    ... 1 more

Process finished with exit code 1

Poderiam me auxiliar nessse caso por favor? Obrigado

2 respostas

Descobri o erro aqui pessoal.
Informando aqui a resposta para apoiar demais colegas:

O erro ocorre devido aos espaços que se encontra dentro da URL

Retirei esses espaços e agora funcionou:

String endereco = "http://www.omdbapi.com/?t=" + titulo + "&apikey=e21d94cf";

solução!

Oii, Marcio.

Que bom que conseguiu encontrar o erro. Irei finalizar o seu post.

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