-
-
Save steppat/d6fc9a8fa90f0c4e5f6bbf23c3e5d89e to your computer and use it in GitHub Desktop.
import java.net.URI; | |
import java.net.http.HttpClient; | |
import java.net.http.HttpRequest; | |
import java.net.http.HttpResponse; | |
class SevenDaysOfCodeJavaDay1 { | |
public static void main(String[] args) throws Exception { | |
String apiKey = "<sua chave>"; | |
URI apiIMDB = URI.create("https://imdb-api.com/en/API/Top250TVs/" + apiKey); | |
HttpClient client = HttpClient.newHttpClient(); | |
HttpRequest request = HttpRequest.newBuilder().uri(apiIMDB).build(); | |
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString()); | |
String json = response.body(); | |
System.out.println("Resposta: " + json); | |
} | |
} |
Acabei de terminar a formação de Java e tive dificuldades pra fazer esse desafio! Na realidade não conhecia as classes para trabalhar com o protocolo http e me baguncei toda pra fazer. Na hora de imprimir , ao invocar o body tava vindo o html todo do site no lugar do json, não entendi o porquê inicialmente, mas depois vi que tinha um erro na minha url. E também utilizei a url com a apiKey visível.
Esse desafio foi difícil kkk, mas eu assisti algumas aulas no youtube e consegui fixar um pouco do conhecimento sobre o HttpClient, HttpRequest e HttpResponse.
Partiu para o segundo desafio!
Boa sorte a todos! 👨🏽💻
To com 2 problemas aqui, o primeiro que o site ta dando ''acesso negado'' e o segundo é que não consigo fazer o import do pacote java.net.
E consequentemente não tenho como utilizar os httpRequest / Response. Acredito que isso esteja acontecendo por estar usando um projeto srping boot, logo vou ter que chamar o Request/Response de uma outra forma. Caso não seja esse o problema vou dar uma olhadinha na versão do meu java.
Mas no geral ta indo tudo na paz ^_^
Boa sorte a todos =)
O meu só imprimi o primeiro filme no console, mas qdo olho o response.body o arquivo está completo...Não sei pq não imprimiu tudo..
import com.google.gson.FieldNamingPolicy;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
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 Main {
public static void main(String[] args) throws IOException, InterruptedException {
String apiKey = "k_th634hsu";
try {
String sUrl = "https://imdb-api.com/en/API/Top250Movies/" + apiKey;
HttpClient cliente = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(sUrl))
.build();
HttpResponse<String> response = cliente
.send(request, HttpResponse.BodyHandlers.ofString());
String json = response.body();
System.out.println(json);
} catch (IOException e) {
System.out.println(e.getMessage());
}
}
}
Pessoal, a api do desafio hoje é paga.
Estou usando essa para fazer o desafio. Gratuita e muito bem documentada.
https://developer.themoviedb.org/docs
Pessoal, a api do desafio hoje é paga. Estou usando essa para fazer o desafio. Gratuita e muito bem documentada. https://developer.themoviedb.org/docs
Obrigadão!
Gente, usei a Api que o pessoal mandou nos comentários acima: https://developer.themoviedb.org/docs
Para quem estiver tendo dificuldades de conectar na API, cheguei a fazer, caso queiram dar uma olhada.
Meu repositório: https://github.com/CaiquePiazzaroli/7Days-To-Code.git
`
public class ApiTmdbClient {
private String apiUrl;
private HttpClient client;
private HttpRequest request;
private HttpResponse<String> response;
private String json;
//TBDB api connection
public ApiTmdbClient(String token, String apiUrl) throws URISyntaxException, IOException, InterruptedException {
//Criando o cliente
this.apiUrl = apiUrl;
this.client = HttpClient.newBuilder().build();
//Criando o request
this.request = newBuilder()
.uri(new URI(this.apiUrl))
.header("Authorization", "Bearer " + token)
.GET()
.build();
//Criando a response
this.response = client.send(request, HttpResponse.BodyHandlers.ofString());
this.json = this.response.body();
}
public String getJson() {
return json;
}`
Cara... Que bateção de cabeça a toa!! Acho que a palavra JSon ativou o modo apocalipse e, junto com o fato do Eclipse não imprimir no console, fez eu ficar o dia todo tentando entender o quê estava errado! Esta parte de http eu não conhecia nada e fiquei pensando que o desafio era muito pra quem acabou de fazer a parte de OO do Java. Só a noite descobri os códigos http e consegui extrair a resposta 200, indicando que estava tudo certo, mas a bagaça não imprimia!! Agora, olhando as resoluções da galera, vi que é relativamente simples e imprimi um Stream num arquivo TXT.
Obrigado e forte abraço a todos!