Настройка прокси-сервера эмулятора Android
Я пытаюсь настроить сетевой прокси для просмотра трафика эмулятора.
Теперь, если я вношу изменения в сетевые настройки эмулятора (10.0.2.2:<port> , все работает нормально.
Но если я попытаюсь установить прокси через командную строку, используя эмулятор -avd myAvd -http-proxy localhost: < порт > , трафик SSL не проходит, и я получаю ошибки времени.
Кто-нибудь смог заставить это работать?
Спасибо
Ответы
Ответ 1
Не уверен, какой эмулятор вы используете, но есть проблема с new
Android-эмулятором, объявленным с Android Studio 2 - Отслеживание ошибок
Чтобы получить обходной путь, мне пришлось сделать следующее, используя эмулятор new
, установленный в API 23:
- Передача
-http-proxy http://192.168.x.x:yyyy
в качестве флага при запуске эмулятора. Подробнее о том, как это сделать, см. здесь.
- Настройте параметры
Access Point
для прокси-сервера в эмуляторе. Для этого перейдите в настройки- > больше- > сотовая сеть- > имена точек доступа и отредактируйте существующую точку доступа.
- Наконец, в
Developer Settings
есть настройка для настройки устройства на использование старого DHCP-клиента вместо нового. Это должно быть настроено на использование устаревшего.
- Включить и выключить режим
Airplane
.
![Настройки разработчика для DHCP-клиента]()
Ответ 2
Отзыв # 6 на https://code.google.com/p/android/issues/detail?id=201402#c6. Если вы используете настройки LAN LAN вашего компьютера, прокси работает с помощью ключа командной строки -http-proxy, и никаких других обходных решений не требуется.
Например:
$ emulator -avd Nexus_5X_API_23 -http-proxy http://10.102.80.149:8888
Ответ 3
Недавно мне пришлось настроить среду прослушивания для отладки некоторого трафика Android SSL.
Теперь кажется, что вам больше не нужно устанавливать прокси на точке доступа эмулятора (шаги 2-4 для ответа @craig-russell). Достаточно добавить параметр запуска -http-proxy
. Также пробовал на уровнях API & lt; 23 и удалось.
Мои характеристики:
Android Studio 2.3.1
Windows 10
Эмулятор Android версии 25.2.5.0
Полная информация: http://www.devsbedevin.net/debugging-android-ssl-traffic/
Ответ 4
Есть вероятность, что ваш прокси-сервер вернет некоторые дополнительные HTTP-заголовки в ответ на запрос HTTP-CONNECT для эмулятора Android. Если это так, вы можете столкнуться с известной проблемой, которая должна была быть исправлена к настоящему времени, но из-за desync между ветвями разработки исправление никогда не был выпущен. Подробнее см. мой комментарий.
Чтобы уточнить, HTTP-запросы не затронуты проблемой, поскольку они не полагаются на туннелирование соединений (например, HTTP CONNECT), доставляемые через HTTP-пересылку сообщений, определенные в RFC7230.