Bom dia pessoal,
preciso de uma ajuda com meu código referente ao exercício:
"Desenvolva um programa em Java que permite aos usuários consultar informações sobre um usuário do GitHub (utilize a API pública do GitHub para obter os dados). Crie uma classe de exceção personalizada, ErroConsultaGitHubException, que estende RuntimeException. Lance essa exceção quando o nome de usuário não for encontrado. No bloco catch, trate de forma específica essa exceção, exibindo uma mensagem amigável."
Problema: Quando eu realizo a consulta, é retornado um valor null, sendo assim, a consulta nunca é finalizada de forma correta, abaixo vou colocar o código:
package br.com.duarte.exer03atv03.main;
import br.com.duarte.exer03atv03.apigithub.ApiGithubConsulta;
import java.io.IOException;
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws IOException, InterruptedException {
Scanner scanner = new Scanner(System.in);
ApiGithubConsulta consulta = new ApiGithubConsulta();
System.out.print("Digite o nome do usuário do GitHub: ");
consulta.setGitHubUser(scanner.next());
System.out.println(consulta.toString());
}
}
package br.com.duarte.exer03atv03.model;
public class UserGitHub {
private String name;
private String login;
private String id;
private String htmlUrl;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getLogin() {
return login;
}
public void setLogin(String login) {
this.login = login;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getHtmlUrl() {
return htmlUrl;
}
public void setHtmlUrl(String htmlUrl) {
this.htmlUrl = htmlUrl;
}
}
package br.com.duarte.exer03atv03.apigithub;
import br.com.duarte.exer03atv03.model.UserGitHub;
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 ApiGithubConsulta {
private String gitHubUser;
public String getGitHubUser() {
return gitHubUser;
}
public void setGitHubUser(String gitHubUser) {
this.gitHubUser = gitHubUser;
}
private String endereco = "https://api.github.com/users/" + getGitHubUser();
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(endereco))
.build();
HttpResponse<String> response = client
.send(request, HttpResponse.BodyHandlers.ofString());
String jsonBody = response.body();
Gson gson = new Gson();
UserGitHub searchUser = gson.fromJson(jsonBody, UserGitHub.class);
public ApiGithubConsulta() throws IOException, InterruptedException {
}
@Override
public String toString() {
return """
Json: %s
Endereço: %s
Valor Digitado: %s
-----------------------------------------------------------------------------------
Nome: %s
Login: %s
Id: %s
URL: %s
""".formatted(jsonBody, endereco, getGitHubUser(), searchUser.getName(), searchUser.getLogin(), searchUser.getId(), searchUser.getHtmlUrl());
}
}
O resultado no console:
Após análise do código, alguém tem alguma dica do que pode ser o problema?