Нужно ли выполнять переадресацию портов при локальном размещении сервера для Android-приложений? - PullRequest
1 голос
/ 16 февраля 2011

Итак, я хотел протестировать свое приложение на реальном устройстве Android. Я отладил его на виртуальном устройстве, и он работает без сбоев, но я хочу, чтобы он теперь мог работать на реальных телефонах для отладки и еще много чего. Я изменил IP-адрес, используемый для доступа к локально размещенному серверу, с 10.0.2.2 на свой собственный. Поэтому каждый раз, когда я вызываю сервер, с которого запрашивает мое приложение, оно отправлялось:

HttpPost httpPost = new HttpPost("http://10.0.2.2/pagemyappwants.php");

до

HttpPost httpPost = new HttpPost("http://76.blahblah.etc/pagemyappwants.php");

последний - IP моего собственного компьютера, который я использовал для запуска серверов с удаленным доступом в прошлом. Я проверил это на работающем сервере wamp / apache, и с помощью этого IP-адреса вы можете получить доступ к страницам php с других компьютеров. Однако, когда я пытаюсь использовать мое приложение, оно зависает на несколько минут, затем движется, как если бы задача была выполнена, но при проверке базы данных mysql, которая регистрирует изменения / дополнения, сделанные через приложение, ничего не происходит .

Итак, подведем итоги. Нужно ли выполнять переадресацию портов, чтобы локально размещенный сервер работал на Android? Или что-то еще, что бы решить эту проблему? Спасибо.

1 Ответ

1 голос
/ 16 февраля 2011

Ваше описание кажется не очень понятным, но если я правильно понимаю, что ваше приложение выполняет HTTP-вызов через общедоступную сеть на ваш собственный ПК, через ваш публичный IP-адрес, то единственный порт, который нужно открыть, - это порт 80(при условии небезопасного HTTP).

Вы говорите, что "приложение зависает на несколько минут, а затем движется, как если бы задача была выполнена".Вы действительно имеете в виду минуты или просто много секунд?Если минуты, это звучит неправильно, так как тайм-аут HTTP не такой длинный.

Если бы это был я, я бы хотел:

  • Получить некоторую трассировку /выполняется отладка по HTTP-вызову, чтобы точно узнать, что происходит, и, в частности, какое исключение выдается или какой результат возвращается.Звучит так, как будто время истекло, но вы не упоминаете об исключении, что заставляет меня думать, что ваше приложение теперь правильно обрабатывает исключения.

  • Я бы попытался получить доступ к URL-адресу HTTP, используябраузер на устройстве, чтобы увидеть, есть ли у него доступ к нему.

  • Проверьте порт вперед.Обычно маршрутизаторы по умолчанию настраиваются для обработки входящих HTTP-запросов, поскольку это создает угрозу безопасности.Если вы ранее настроили это, и теперь оно не работает, возможно ли сбой порта пересылки с маршрутизатора на ваш ПК, поскольку ваш ПК имеет другой IP-адрес?

...