Я прочитал все темы по этой теме, и инструкции по настройке 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
Мои настройки:
- Сервер Spring для разработки localhost, работающий на моей Mac OS
- Приложение для 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/ вместо этого, поэтому я не думаю, что это решит мою проблему.