Skip to content

Commit

Permalink
Ejercicio #20 completo
Browse files Browse the repository at this point in the history
  • Loading branch information
simonguzman committed Sep 10, 2024
1 parent a8722a8 commit 6c82537
Showing 1 changed file with 88 additions and 1 deletion.
89 changes: 88 additions & 1 deletion Roadmap/20 - PETICIONES HTTP/java/simonguzman.java
Original file line number Diff line number Diff line change
@@ -1,13 +1,32 @@

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.StringReader;
import java.net.HttpURLConnection;
import java.net.URL;

//Imports que no se pueden usar a no ser que se tengan en un archivo pom.xml
import javax.json.Json;
import javax.json.JsonArray;
import javax.json.JsonObject;
import javax.json.JsonReader;

/* Dependencias necesarias para que funcione el codigo
<dependency>
<groupId>javax.json</groupId>
<artifactId>javax.json-api</artifactId>
<version>1.1.4</version>
</dependency>
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>javax.json</artifactId>
<version>1.1.4</version>
</dependency>*/

public class simonguzman {
public static void main(String[] args) throws IOException{
makeHttpRequest("https://www.google.com/");
getPokemonApi("bulbasaur");
}

public static void makeHttpRequest(String url) throws IOException{
Expand All @@ -32,4 +51,72 @@ public static void makeHttpRequest(String url) throws IOException{
System.out.println("ERROR: "+responseCode);
}
}

public static void getPokemonInfo(String pokemonName) throws IOException {
String url = "https://pokeapi.co/api/v2/pokemon/" + pokemonName;
URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();

con.setRequestMethod("GET");
con.setRequestProperty("User-Agent", "MyPokemonApp");

int responseCode = con.getResponseCode();
if (responseCode == 200) {
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();

while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();

JsonReader jsonReader = Json.createReader(new StringReader(response.toString()));
JsonObject jsonObject = jsonReader.readObject();

System.out.println("Nombre: " + jsonObject.getString("name"));
System.out.println("ID: " + jsonObject.getInt("id"));
System.out.println("Peso: " + jsonObject.getJsonNumber("weight").doubleValue());
System.out.println("Altura: " + jsonObject.getJsonNumber("height").doubleValue());
System.out.println("Tipos: " + jsonObject.getJsonArray("types"));

JsonObject speciesObject = jsonObject.getJsonObject("species");
String speciesUrl = speciesObject.getString("url");
URL speciesObj = new URL(speciesUrl);
HttpURLConnection speciesCon = (HttpURLConnection) speciesObj.openConnection();

speciesCon.setRequestMethod("GET");
speciesCon.setRequestProperty("User-Agent", "MyPokemonApp");

int speciesResponseCode = speciesCon.getResponseCode();
if (speciesResponseCode == 200) {
BufferedReader speciesIn = new BufferedReader(new InputStreamReader(speciesCon.getInputStream()));
String speciesInputLine;
StringBuffer speciesResponse = new StringBuffer();

while ((speciesInputLine = speciesIn.readLine()) != null) {
speciesResponse.append(speciesInputLine);
}
speciesIn.close();

JsonReader speciesJsonReader = Json.createReader(new StringReader(speciesResponse.toString()));
JsonObject speciesJsonObject = speciesJsonReader.readObject();

String evolutionChainUrl = speciesJsonObject.getJsonObject("evolution_chain").getString("url");
System.out.println("Cadena de evoluciones: " + evolutionChainUrl);
} else {
System.out.println("Error: " + speciesResponseCode);
}

JsonArray games = jsonObject.getJsonArray("game_indices");
System.out.println("Juegos: ");
for (int i = 0; i < games.size(); i++) {
JsonObject gameIndexObject = games.getJsonObject(i);
JsonObject versionObject = gameIndexObject.getJsonObject("version");
System.out.println(" - " + versionObject.getString("name"));
}
} else {
System.out.println("Error: " + responseCode);
}
}
}

0 comments on commit 6c82537

Please sign in to comment.