#android #mobile #proxy
#Android #Мобильный #прокси
Вопрос:
Я знаю, как настроить эмулятор Android для прокси веб-трафика браузера через прокси, такой как Charles или Fiddler2, но трафик приложений не проходит через прокси.
Я пытаюсь отладить приложение, и мне нужно посмотреть, что такое запрос ответ, но не могу понять, как это настроить. Я попробовал -http-proxy
аргумент командной строки, но, похоже, это ничего не дает для меня.
Ответ №1:
Я считаю, что проще всего сделать либо:
-
Захватывайте трафик с помощью такого инструмента, как wireshark, и фильтруйте на основе адреса сервера.
-
Используйте прокси-сервер socks, который регистрирует трафик, и оболочку socksify вокруг эмулятора Android
-
Обновите приложение, чтобы оно использовало настройки прокси (подробности зависят от используемого вами метода подключения, например HttpURLConnection, WebView, raw sockets, …). Вам все равно следует сделать это в какой-то момент, чтобы улучшить совместимость с различными сетевыми настройками, но не обязательно прямо сейчас.
Комментарии:
1. Wireshark работает, но захватывает СЛИШКОМ много трафика. К сожалению, похоже, что это единственный вариант, поскольку во многих блогах, которые я прочитал, упоминается невозможность правильного прокси-эмулятора Android. Google нужно действовать сообща.
Ответ №2:
При любом HTTP-запросе необходимо разрешить доменное имя (чтобы получить ip домена) с помощью dns-запроса, эмулятор по умолчанию пытается получить машинный dns-сервер, но это не всегда работает, например, в эмуляторе Ubuntu используется /etc/resolv.conf но он устарел. Итак, при запуске эмулятора можно использовать другой флаг — dns-server