Chcę proxy ruchu sieciowego dla emulatora Androida.com.android.volley.NoConnectionError - Emulator Androida z Charles Proxy
Nie mogę sprawić, żeby zadziałało.
Moja emulator jest uruchomiony przy użyciu to:
emulator @Nexus_5X_API_23 -http-proxy 10.0.1.17:8888
punktów IP i port, co donosi Karola w menu Pomoc.
Certyfikat SSL jest zainstalowany. Mogę otworzyć przeglądarkę emulatora i Charles pokazuje mi cały ruch. Przeglądarka aktualizuje się jak zwykle.
Wszystko wydaje się jak dotąd dobre.
Teraz próbuję uruchomić moją aplikację. Moje pierwsze połączenie sieciowe z powodzeniem przechodzi przez Charlesa. Odpowiedź wraca i Charles ją wyświetla. Jednak odpowiedź nie zostanie pomyślnie przekazana do aplikacji.
Ustawiłem punkt przerwania w wywołaniu błędu i widzę com.android.volley.NoConnectionError
, które jest spowodowane przez java.io.IOException: unexpected end of stream on Connection
.
Dlaczego Charles nie przekazuje poprawnie wyniku do aplikacji?
Czy muszę zrobić to, co zdefiniowano pod numerem the end of the configuration page on Charles?
HttpHost httpproxy = new HttpHost("192.168.0.101", 8888, "http");
httpClient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY,httpproxy);
To nie wydaje się poprawne - czego mi brakuje?
Mówisz o certyfikacie SSL ... Czy Twój jeden proxy SSL? Czy próbujesz połączyć się z witryną chronioną protokołem SSL? – Jehy
Jeśli chcesz monitorować ruch w https, sugeruję użycie Fiddlera, co jest wygodniejsze pod tym względem. – suitianshi
jakiego używasz HttpStack? spróbuj dodać -verbose-proxy podczas uruchamiania emulatora i dodaj do pytania wyjście – djodjo