3
respostas

Erro Time Out Pt.2 - Com Notebook e Celular físico conectados por WiFi

Continuando a dúvida que o Victor Maia Sarrasqueiro começou, também tive o mesmo problema(java.net.SocketTimeoutException), porém depois de colocar o IP tanto do celular como do notebook como estático e em seguida colocar no celular o mesmo endereço IP do notebook eu recebo outro exception:

Obs.: Estou usando o projeto disponível para download no final do curso, com a única alteração de colocar meu IP na "baseURL" do retrofit.

Primeiro erro: java.net.SocketTimeoutException:

08-20 11:32:19.489 5133-5430/br.com.alura.agenda D/OkHttp: --> POST http://192.168.1.3:8080/api/aluno http/1.1
08-20 11:32:19.489 5133-5430/br.com.alura.agenda D/OkHttp: Content-Type: application/json; charset=UTF-8
08-20 11:32:19.489 5133-5430/br.com.alura.agenda D/OkHttp: Content-Length: 182
08-20 11:32:19.509 5133-5430/br.com.alura.agenda D/OkHttp: {"caminhoFoto":null,"endereco":"Motorola Enterprise","id":"572995a0-f6cc-4e9b-ba43-f8b91c01f467","nome":"Mr. Moto G3","nota":10.0,"site":"www.motorola.com.br","telefone":"1050 1050"}
08-20 11:32:19.509 5133-5430/br.com.alura.agenda D/OkHttp: --> END POST (182-byte body)
08-20 11:32:19.617 5133-5433/br.com.alura.agenda D/OkHttp: --> GET http://192.168.1.3:8080/api/aluno http/1.1
08-20 11:32:19.617 5133-5433/br.com.alura.agenda D/OkHttp: --> END GET
08-20 11:32:19.621 5133-5133/br.com.alura.agenda I/id do aluno: 572995a0-f6cc-4e9b-ba43-f8b91c01f467
08-20 11:32:19.668 5133-5283/br.com.alura.agenda V/RenderScript: 0xb9919180 Launching thread(s), CPUs 4
08-20 11:32:19.856 5133-5283/br.com.alura.agenda E/Surface: getSlotFromBufferLocked: unknown buffer: 0xb986a398
08-20 11:32:19.856 5133-5283/br.com.alura.agenda D/OpenGLRenderer: endAllActiveAnimators on 0xb98e3258 (RippleDrawable) with handle 0xb9879a90
08-20 11:32:25.724 5133-5281/br.com.alura.agenda D/OkHttp: <-- HTTP FAILED: java.net.SocketTimeoutException: failed to connect to /192.168.1.3 (port 8080) after 10000ms
08-20 11:32:25.725 5133-5133/br.com.alura.agenda E/onFailure chamado: failed to connect to /192.168.1.3 (port 8080) after 10000ms
08-20 11:32:29.513 5133-5430/br.com.alura.agenda D/OkHttp: <-- HTTP FAILED: java.net.SocketTimeoutException: failed to connect to /192.168.1.3 (port 8080) after 10000ms
08-20 11:32:29.514 5133-5133/br.com.alura.agenda E/onFailure: requisicao falhou
08-20 11:32:29.629 5133-5433/br.com.alura.agenda D/OkHttp: <-- HTTP FAILED: java.net.SocketTimeoutException: failed to connect to /192.168.1.3 (port 8080) after 10000ms
08-20 11:32:29.630 5133-5133/br.com.alura.agenda E/onFailure chamado: failed to connect to /192.168.1.3 (port 8080) after 10000ms

Segundo erro: java.io.IOException:

D/OkHttp: --> POST http://192.168.1.3:8080/api/aluno http/1.1
08-20 11:44:38.459 26946-28071/br.com.alura.agenda D/OkHttp: Content-Type: application/json; charset=UTF-8
08-20 11:44:38.460 26946-28071/br.com.alura.agenda D/OkHttp: Content-Length: 182
08-20 11:44:38.460 26946-28071/br.com.alura.agenda D/OkHttp: {"caminhoFoto":null,"endereco":"Motorola Enterprise","id":"572995a0-f6cc-4e9b-ba43-f8b91c01f467","nome":"Mr. Moto G3","nota":10.0,"site":"www.motorola.com.br","telefone":"1050 1050"}
08-20 11:44:38.461 26946-28071/br.com.alura.agenda D/OkHttp: --> END POST (182-byte body)
08-20 11:44:38.521 26946-28071/br.com.alura.agenda D/OkHttp: <-- HTTP FAILED: java.io.IOException: unexpected end of stream on okhttp3.Address@8ffc8b95
08-20 11:44:38.541 26946-26946/br.com.alura.agenda E/onFailure: requisicao falhou
08-20 11:44:38.610 26946-28078/br.com.alura.agenda D/OkHttp: --> GET http://192.168.1.3:8080/api/aluno http/1.1
08-20 11:44:38.611 26946-28078/br.com.alura.agenda D/OkHttp: --> END GET
08-20 11:44:38.616 26946-26946/br.com.alura.agenda I/id do aluno: 572995a0-f6cc-4e9b-ba43-f8b91c01f467
08-20 11:44:38.622 26946-28078/br.com.alura.agenda D/OkHttp: <-- HTTP FAILED: java.io.IOException: unexpected end of stream on okhttp3.Address@8ffc8b95
08-20 11:44:38.710 26946-27266/br.com.alura.agenda V/RenderScript: 0xb990e710 Launching thread(s), CPUs 4
08-20 11:44:38.767 26946-26946/br.com.alura.agenda E/onFailure chamado: unexpected end of stream on okhttp3.Address@8ffc8b95
08-20 11:44:38.875 26946-27266/br.com.alura.agenda E/Surface: getSlotFromBufferLocked: unknown buffer: 0xb9949420
08-20 11:44:38.875 26946-27266/br.com.alura.agenda D/OpenGLRenderer: endAllActiveAnimators on 0xb9926e68 (RippleDrawable) with handle 0xb9681b18
3 respostas

Oi Yuri tudo bem?

Veja que está acontecendo esse erro:

HTTP FAILED: java.net.SocketTimeoutException: failed to connect to /192.168.1.3 (port 8080) after 10000ms

Isso indica que o seu celular não conseguiu se conectar com o servidor. Quando acontece esse tipo de situação podemos realizar alguns testes para entender o que está acontecendo:

1) Vá no seu navegador do seu computador e use o mesmo endereço que colocou no celular, no seu caso é o http://192.168.1.3:8080/. Veja se aparece o servidor normalmente.

  • Se falhar, significa que o endereço ip não corresponde com o do seu computador dentro da rede que ele está. Portanto, precisa verificar novamente qual endereço ip está configurado para o seu computador, então, pegando o novo ip realize o mesmo teste.

Caso esse teste passe, significa que o endereço está correto e o que precisa ser verificado é apenas o celular.

2) Após o primeiro teste passar, faça o mesmo teste que foi feito, porém, agora no celular, ou seja, abra o navegador do celular e tente acessar o endereço http://192.168.1.3:8080/.

  • Se falhar, significa que o seu celular não está na mesma rede que o seu computador, portanto, ele nunca vai conseguir acessar a api de forma local. Em outras palavras, vai precisar verificar a rede que o seu celular está e configurar para que fiquem na mesma rede.

Esses são os 2 testes a serem feitos para resolver essa situação. Caso tiver alguma dúvida em algum dos passos é só avisar.

[]s

Na verdade, eu já havia tentado entrar com o mesmo endereço no celular e tentei de novo agora, e, não funcionou. O eu que fiz foi mudar o IP do celular e colocar o mesmo IP do notebook, porém o que eu percebi (com a ajuda de um programa externo que fica monitorando os endereços IP's conectados) foi que o IP do notebook depois de aproximadamente um minuto mais ou menos muda sozinho e o notebook fica sem acesso a internet e no celular continua não acessando a api. O notebook precisaria estar cabeado pra funcionar?

Considerando esse cenário, o que você pode fazer seria mudar para uma rede na qual o seu ip não fique mudando. Lembre-se que mudar para cabeado não significa que você resolverá o problema, pois se for a mesma rede, ainda sim o DHCP vai ficar mudando o IP de tempos em tempos...

Uma outra alternativa, talvez a que resolva de vez, seria definir um ip fixo no seu computador, dessa forma, independente da rede que estiver, você vai manter sempre o mesmo IP.

[]s