Я разрабатываю приложение Flutter на физическом устройстве Android, я мало разбираюсь в сетях, и у меня возникают проблемы с использованием API с телефона в локальную базу данных на моем ноутбуке. Я просмотрел все ответы в этом посте
Не удается подключиться к localhost API из приложения для Android
У меня ничего не работает, я использую сервер Apache на XAMPP, и API отлично работает с ноутбука (127.0.0.1:8000/api/Students), но когда я пытаюсь получить к нему доступ с телефона, это не так. работает (я заменил 127.0.0.1 на IP своего ноутбука, который я взял из ipconfig)
когда я пытаюсь получить доступ к серверу с телефона, используя IP-адрес ноутбука: 80, он обычно получает доступ к IP-адресу ноутбука: 80/phpmyadmin. Панель инструментов XAMPP но только когда мой телефон подключен к мобильной точке доступа ноутбука, когда я подключаю два устройства к одной и той же сети WIFI, он показывает, что он недоступен:
но когда я пробую IP-адрес ноутбука: 8000/api/Students, это происходит:
Я попытался изменить Apache httpd.conf:
#Слушай 12.34.56.78:80
Listen 8000 <-- Added this
насколько я понял, это заставляет сервер прослушивать порт 8000, но у меня осталась та же проблема
ПРИМЕЧАНИЕ. На всех рисунках показаны мои попытки использовать API в браузере Chrome на моем телефоне.





Вам нужно внести некоторые изменения в URL-адрес, чтобы получить к нему доступ на устройстве, поскольку localhost известен только машине, а не устройствам, на которых работает приложение.
URL разные для разных устройств
static const baseUrl = "http://10.0.2.2:8000";
static const baseUrl = "http://localhost:8000";
adb reverse tcp:8000 tcp:8000
Теперь ваши запросы будут выглядеть так:
get('$baseUrl/api/Students');
Тогда вопрос нужно изменить, вопрос говорит Accessing localhost API from android device, на что мой ответ. Если ваш API не работает, попробуйте проверить серверную часть. и предоставьте код, где вы находите ошибку
как я уже упоминал, API отлично работает на моем ноутбуке, проблема заключается в том, что я пытаюсь использовать его с удаленного устройства.
под удаленным устройством вы подразумеваете эмулятор или реальное устройство?
реальное устройство, я ввел URL-адрес API в Chrome после замены домашнего адреса IP-адресом моего ноутбука
Нет, не используйте адрес ноутбука, попробуйте решение, которое я предоставил в посте шаг за шагом, и тогда оно будет работать, сначала вам нужно включить отладку по usb, а затем вам нужно запустить указанный код в командной строке, а затем вы можете получить к нему доступ как localhost даже на вашем реальном устройстве
Я все еще пытаюсь протестировать API в Chrome, прежде чем добавлять его в код, в первую очередь он не работает в браузере.