Hola buenas noches, a alguien le paso que cuando consultaba la api en postman le daba la respuesta pero cuando lo intento hacer en el codigo le devolvio un 301? el 301 siginifica que ya esa URL no esta haciendo utilizada y que esta siendo redirigido a otra URL, la verdad no se siera un error de mi codigo aunque revise el de la clase y pues estaban parecidos y es mas copie y pegue el de la clase y tampoco me funciono. Igual forma busque una solucion y asi fue que pude.
import com.google.gson.Gson;
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 StarWarsApi { public FilmsRecord searchFilm(int numberFilm) { URI uri = URI.create("https://swapi.py4e.com/api/films/" + numberFilm); HttpClient client = HttpClient.newBuilder() .followRedirects(HttpClient.Redirect.NORMAL) .build(); HttpRequest request = HttpRequest.newBuilder() .uri(uri) .build();
try {
HttpResponse<String> response = client
.send(request, HttpResponse.BodyHandlers.ofString());
return new Gson().fromJson(response.body(), FilmsRecord.class);
} catch (Exception e) {
throw new RuntimeException("I didn't find that film.");
}
} }
No se si algun profesor pueda analizar el codigo para saber si de esta forma esta bien, a veces las cosas funcionan pero no es el mejor codigo.