** У меня есть локальный сервер, написанный на python-django (restapi) и приложение для Android (использующее retrofitclient). То, что я хочу сделать, это вход в систему без использования эмулятора. С эмулятором, использующим ip 10.0.2.2
, работал. Я подключен к мобильному телефону в той же сети, что и мой ноутбук, более того, я использовал соединение с ПК, чтобы не иметь ограничений. На стороне сервера я установил ALLOWED_HOSTS = ['*'**]
.
Мой ip-адрес 192.168.56.1
, порт, на котором я запускаю сервер, 8000
. В retrofit
я устанавливаю BASE_URL ="http://192.168.56.1:8000/api/";
Когда я запускаю приложение и пытаюсь войти в систему, я получаю эту ошибку
D/OkHttp: --> POST http://192.168.56.1:8000/api/login/ http/1.1
D/OkHttp: Content-Type: application/json; charset=UTF-8
D/OkHttp: Content-Length: 37
D/OkHttp: {"password":"mara","username":"mara"}
D/OkHttp: --> END POST (37-byte body)
D/TcpOptimizer: TcpOptimizer-ON
D/OkHttp: <-- HTTP FAILED: java.net.SocketTimeoutException: failed to
connect to /192.168.56.1 (port 8000) from /192.168.137.85 (port 38536) after 10000ms
Android, кажется, дает мне случайный порт каждый раз, когда я пытаюсь подключиться.
Я использую API-level 28
. Я не знаю, как мне решить проблему, потому что простое использование эмулятора не может решить мою проблему.