Charles Proxy для Genymotion останавливает локальный трафик 10.0.3.2

Я прочитал все темы по этой теме, и инструкции по настройке charles с genymotion все одинаковы:

http://rexstjohn.com/using-genymotion-charles-proxy/

In your Genymotion Android emulator…
Settings -> Wifi -> Press and hold your active network
Select “Modify Network”
Select “Show Advanced Options”
Select “Proxy Settings -> Manual”
Set your Proxy to: 10.0.3.2 (Genymotion’s special code for the local workstation)
Set your Port to: 8888
Press Save

Мои настройки:

  1. Сервер Spring для разработки localhost, работающий на моей Mac OS
  2. Приложение для Android, установленное на моем эмуляторе genymotion. Эмулятор genymotion взаимодействует с моим локальным сервером разработки через IP-адрес 10.0.3.2 (Как получить доступ к локальному хосту из эмулятора Android Genymotion?)

Я не уверен, что инструкции устарели, но проблема, с которой я сталкиваюсь, заключается в том, что трафик, поступающий от моего эмулятора genymotion, записывается в Charles Proxy, но он просто не достигает моего локального сервера. Я не использую шифрование SSL между моим сервером и моим приложением.

Это мои настройки на экране Wi-Fi genymotion:

введите здесь описание изображения

Вот как выглядит мой Charles Proxy — вы можете видеть, что это «Подключение к удаленному хосту». Он подключается навсегда, а затем в конечном итоге выдает ошибку 503 на стороне моего приложения для Android, и ничего не возвращается:

введите здесь описание изображения

Если я отключу Charles Proxy, приложение без проблем соединится с моим локальным сервером, и все вызовы будут успешно возвращены. Я думаю, что это как-то связано с Чарльзом, который мешает моему приложению взаимодействовать с моим локальным сервером.

В Postman, если я попытаюсь запросить тот же URL-адрес, который пытался запросить мое приложение для Android, он успешно работает, и результаты также успешно регистрируются в Charles:

http://localhost:8443/ + my api endpoint **OR** http://localhost.charlesproxy.com:8443/ + my api endpoint

Единственная разница между запросом в Postman и запросом в моем приложении для Android заключается в том, что мое приложение вместо этого использует этот URL-адрес 10.0.3.2, потому что я работаю с эмулятором:

http://10.0.3.2:8443/ + my api endpoint

Я также добавил 10.0.3.2 в свои настройки контроля доступа:

введите здесь описание изображения

Я могу зайти в свой интернет-браузер эмулятора Android genymotion и выполнить поиск веб-сайтов, таких как www.msn.com, и он будет успешно возвращен, а также зарегистрировать результаты в Charles, но я не ищу и не готов платить 50 долларов США за инструмент для записи трафик моего браузера Android. Мне нужно, чтобы он работал с моим приложением для Android, чтобы я мог отлаживать свое приложение. Я не уверен, как это исправить, кто-нибудь здесь знает, если я что-то упустил?

ИЗМЕНИТЬ:

Если кому-то интересно, я прочитал этот пост в часто задаваемых вопросах Чарльза о трафике Localhost, который не отображается в Чарльзе:

https://www.charlesproxy.com/documentation/faqs/

Но я не могу изменить 10.0.3.2, используемый Genymotion, на http://localhost.charlesproxy.com/ вместо этого, поэтому я не думаю, что это решит мою проблему.


person Simon    schedule 27.04.2016    source источник


Ответы (1)


Итак, я играл с эмулятором Genymotion и Чарльзом, и мне действительно удалось заставить Чарльза записывать трафик локального хоста.

Подобно тому, как я запросил Postman с помощью:

http://localhost.charlesproxy.com:8443/ + my api endpoint

Я только что изменил хост-часть всех моих конечных точек API на: http://localhost.charlesproxy.com:8443/, и это сработало.

person Simon    schedule 04.05.2016