Tenho recebido uma mensagem de erro de conexão com o servidor "http://192.168.174.1:8080/api/", seria esse ip mesmo ?
Mensagem de erro:
2019-03-12 21:35:33.972 8072-8072/br.com.alura.agenda E/token falhou: connect timed out
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Tenho recebido uma mensagem de erro de conexão com o servidor "http://192.168.174.1:8080/api/", seria esse ip mesmo ?
Mensagem de erro:
2019-03-12 21:35:33.972 8072-8072/br.com.alura.agenda E/token falhou: connect timed out
Oi Pabro, tudo bem?
O pelo o que erro indica, você não está acessando o endereço certo.
Sobre sua dúvida se esse é o endereço correto, você precisa verificar o endereço IP do seu computador por meio dos programas disponíveis pelos sistemas operacionais:
ipconfigifconfigAssim que obter o ip faça o teste pegando e a porta e tentando acessar via navegador. Caso funcione, teste o mesmo endereço no navegador do celular.
Se não funcionar, talvez o dispositivo e o computador não estão na mesma rede, aí vai precisar configurá-los para que fiquem na mesma rede.
[]s
Grande professor Alex, primeiramente muito obrigado por me responder.
Então eu achei que esse ip que eu comentei no tópico era referente algum serviço externo, mas na realidade esse endpoint é disponibilizado no server correto ?
Bom eu inicializo o server e até tento fazer uma chamada na URI "192.168.0.xxx/api" porem estou recebendo o seguinte erro:
Whitelabel Error Page
This application has no explicit mapping for /error, so you are seeing this as a fallback.
Thu Mar 14 21:12:36 BRT 2019
There was an unexpected error (type=Not Found, status=404).
No message availableA minha duvida é onde realmente esse serviço está disponível.
Um abraço...
Obrigado pelo elogio, estamos aqui para ajudá-lo no que precisar o/
Sim, o endereço IP é do computador que executou o servidor, por isso precisa modificá-lo.
Sobre o erro é pelo fato de que o end point que está acessando (192.168.0.xxx/api) não foi mapeado pelo servidor, tente por exemplo a variação 192.168.0.x:y/api/aluno que devolve a lista de alunos.
[]s
Professor Alex, muito obrigado por ter me respondido e desculpe a demora por voltar aqui, sabe como é essa vida de DEV esta tudo sempre atrasado e fora do prazo kkkkkk.
Parabéns pelo conteúdo que você trabalha na Alura, eu fiz a formação Android na Caelum foi uma pena não ter tido aula com você, mas o seu conteúdo aqui esta nota mil, quem sabe um dia eu tenha a oportunidade de trabalhar com um profissional do seu nível, ficaria muito feliz.
Bom fiz o teste na seguinte uri "http://192.168.80.1:8080/api/aluno" no brownser eu tenho o retorno das listas com sucesso no formato de json, mas no app eu estou recebendo a seguinte exception:
03-19 00:08:39.146 15863-15863/br.com.alura.agenda E/AndroidRuntime: FATAL EXCEPTION: main
Process: br.com.alura.agenda, PID: 15863
java.lang.RuntimeException: Unable to start activity ComponentInfo{br.com.alura.agenda/br.com.alura.agenda.ListaAlunosActivity}: java.lang.IllegalArgumentException: baseUrl must end in /: http://192.168.80.1:8080/api/aluno
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
at android.app.ActivityThread.-wrap11(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Caused by: java.lang.IllegalArgumentException: baseUrl must end in /: http://192.168.80.1:8080/api/aluno
at retrofit2.Retrofit$Builder.baseUrl(Retrofit.java:515)
at retrofit2.Retrofit$Builder.baseUrl(Retrofit.java:458)
at br.com.alura.agenda.retrofit.RetrofitInicializador.<init>(RetrofitInicializador.java:24)
at br.com.alura.agenda.ListaAlunosActivity.buscaAlunos(ListaAlunosActivity.java:118)
at br.com.alura.agenda.ListaAlunosActivity.onCreate(ListaAlunosActivity.java:85)
at android.app.Activity.performCreate(Activity.java:6237)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
at android.app.ActivityThread.-wrap11(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) Essa é minha classe inicializadora do retrofit:
public class RetrofitInicializador {
private final Retrofit retrofit;
public RetrofitInicializador(){
HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
OkHttpClient.Builder client = new OkHttpClient.Builder();
client.addInterceptor(interceptor);
this.retrofit = new Retrofit.Builder().baseUrl("http://192.168.80.1:8080/api/aluno")
.addConverterFactory(JacksonConverterFactory
.create())
.client(client.build())
.build();
}
public AlunoService getAlunoService() {
return retrofit.create(AlunoService.class);
}
public DispositivoService getDispositivoService() {
return retrofit.create(DispositivoService.class);
}
}Estou achando muito estranho o fato de conseguir chamar o endpoint no brownser mas não consigo usar no meu app....
Você teria outra dica ?
Abs ....
Opa Pable, sem problemas! Tudo no seu tempo hehe
Fico muito feliz pelas suas palavras, muito obrigado mesmo :)
Esse erro é tranquilo a descrição é essa:
Caused by: java.lang.IllegalArgumentException: baseUrl must end in /: http://192.168.80.1:8080/api/alunoOu seja, falta uma / no final da URI, basta apenas deixar a URL base da seguinte maneira:
this.retrofit = new Retrofit.Builder().baseUrl("http://192.168.80.1:8080/api/aluno/")Um detalhe importante é que a recomendação para URL é configurar um endereço que sirva para outros end points da API, como é o caso do /aluno ou /algumaOutraCoisa, portanto, ao invés de http://192.168.80.1:8080/api/aluno/ deixe apenas http://192.168.80.1:8080/api/, então você faz a modificação do restante no service do Retrofit quando configurar a requisição.
[]s
Fala Professor Alex, muito obrigado realmente era algo bem simples.