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

[Bug] Problema na hora de compilar

Estou com o código dessa forma:

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;

public class PrincipalComBusca {
    public static void main (String[] args) throws IOException, InterruptedException {
        HttpClient client = HttpClient.newHttpClient();
        HttpRequest request = HttpRequest.newBuilder()
            .uri(URI.create("http://www.omdbapi.com/?t=interstellar&apikey={apiKey-falaramParaNãoDivulgar}"))
            .build();
        HttpResponse<String> response = client
            .send(request, HttpResponse.BodyHandlers.ofString());
        System.out.println(response.body());
        }
}

E estou tendo o seguinte erro:

Exception in thread "main" java.net.ConnectException at java.net.http/jdk.internal.net.http.HttpClientImpl.send(HttpClientImpl.java:573) at java.net.http/jdk.internal.net.http.HttpClientFacade.send(HttpClientFacade.java:123) at br.com.alura.screenmatch.principal.PrincipalComBusca.main(PrincipalComBusca.java:16) Caused by: java.net.ConnectException at java.net.http/jdk.internal.net.http.common.Utils.toConnectException(Utils.java:1055) at java.net.http/jdk.internal.net.http.PlainHttpConnection.connectAsync(PlainHttpConnection.java:198) at java.net.http/jdk.internal.net.http.PlainHttpConnection.checkRetryConnect(PlainHttpConnection.java:230) at java.net.http/jdk.internal.net.http.PlainHttpConnection.lambda$connectAsync$1(PlainHttpConnection.java:206) at java.base/java.util.concurrent.CompletableFuture.uniHandle(CompletableFuture.java:934) at java.base/java.util.concurrent.CompletableFuture$UniHandle.tryFire(CompletableFuture.java:911) at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510) at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1773) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.base/java.lang.Thread.run(Thread.java:857) Caused by: java.nio.channels.ClosedChannelException at java.base/sun.nio.ch.SocketChannelImpl.ensureOpen(SocketChannelImpl.java:195) at java.base/sun.nio.ch.SocketChannelImpl.beginConnect(SocketChannelImpl.java:760) at java.base/sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:848) at java.net.http/jdk.internal.net.http.PlainHttpConnection.lambda$connectAsync$0(PlainHttpConnection.java:183) at java.base/java.security.AccessController.doPrivileged(AccessController.java:748) at java.net.http/jdk.internal.net.http.PlainHttpConnection.connectAsync(PlainHttpConnection.java:185) ... 9 more

    Alguem pode me ajudar?
2 respostas
solução!

Olá Matheus, tudo bem? Espero que sim!

A exceção java.net.ConnectException é lançada quando uma tentativa de conexão falha. Isso pode ser causado por vários motivos, como um servidor inacessível, uma URL inválida ou problemas de rede.

No seu caso, o código parece correto e similar ao que foi apresentado na aula. Então, aqui estão algumas possíveis soluções para o seu problema:

  1. Verifique a URL da API: Certifique-se de que a URL da API que você está tentando acessar está correta e acessível. Você pode testar a URL diretamente no seu navegador ou usando uma ferramenta como o Postman.

  2. Verifique sua conexão com a internet: Às vezes, problemas de rede podem causar essa exceção. Certifique-se de que sua internet está funcionando corretamente.

  3. Verifique o firewall e as configurações de segurança: Em alguns casos, o firewall ou as configurações de segurança do seu sistema podem estar bloqueando a conexão. Se você estiver em uma rede corporativa ou escolar, pode haver restrições de rede que estão impedindo a conexão.

  4. Verifique a sua chave da API: Certifique-se de que a chave da API que você está usando é válida. Se a chave da API for inválida, a conexão pode falhar.

Para ilustrar, se você estiver testando a URL no seu navegador, ela ficaria assim:

http://www.omdbapi.com/?t=interstellar&apikey={suaApiKey}

Substitua {suaApiKey} pela chave da API que você recebeu. Se a URL estiver correta, você deverá ver a resposta da API no seu navegador.

Espero ter ajudado!

Caso tenha dúvidas, fico à disposição.

Abraços e bons estudos!

Obrigado! O caso seria o 3 mesmo.. depois que percebi que foi por conta da rede corporativa.. muito obrigado!!