2016-02-19 23 views
24

Sto tentando di impostare un proxy di rete per visualizzare il traffico dell'emulatore.Impostazione proxy emulatore Android

Ora, se faccio un cambiamento nelle impostazioni di rete di emulatore (10.0.2.2:. < porta>, le cose funzionano bene Ma se cerco di impostare il proxy attraverso la linea di comando utilizzando emulatore -avd myAvd -http-proxy localhost:.? < porta>, traffico SSL non passa attraverso e avrò tempo gli errori

Chiunque è stato in grado di ottenere questo lavoro

Grazie

+4

Un utile flag per aggiungere al comando 'emulator -avd' è' -debug-proxy' –

+0

Possibile duplicato di [Come configurare le impostazioni del proxy dell'emulatore Android?] (Https://stackoverflow.com/questions/1570627/how-to-setup-android-emulator-proxy-settings) –

risposta

68

non sai quale emulatore che si sta utilizzando, ma c'è un problema con new Android emulatore annunciato con Android Studio 2-Bug Tracker

Per ottenere una soluzione, ho dovuto effettuare le seguenti operazioni utilizzando il new emulatore impostato API 23:

  1. Passo -http-proxy http://192.168.x.x:yyyy come un flag quando si stanno lanciando l'emulatore. For details how to do this, see here.
  2. Configurare le impostazioni Access Point per il proxy all'interno dell'emulatore. Per fare questo, si va a impostazioni ->più ->rete cellulare ->Nomi punti di accesso e modificare il punto di accesso esistente.
  3. Infine, è disponibile un'impostazione in Developer Settings per configurare il dispositivo in modo che utilizzi il client DHCP legacy anziché quello nuovo. Questo deve essere configurato per usare quello precedente.
  4. Attiva o disattiva la modalità Airplane.

Access point settings for proxy Developer settings for DHCP client

+3

Obmit step 1 funziona anche per me con l'emulatore API 23 – nhkhanh

+0

ciao ho provato come hai descritto ma ancora non funziona, lo stesso valore per chrome ma in emulatore no –

+0

Worked , se hai un utente/password per il tuo proxy, devi avviare chrome/webbrowser per impostarli anche lì. – Mualig

7

Partenza commento # 6 su https://code.google.com/p/android/issues/detail?id=201402#c6. Se si utilizza l'impostazione IP LAN del computer, il proxy funziona utilizzando l'opzione della riga di comando -http-proxy e non sono necessari altri metodi.

Ad esempio:

$ emulator -avd Nexus_5X_API_23 -http-proxy http://10.102.80.149:8888 
+0

Questo sembra essere l'approccio giusto. – Vaiden

0

Recentemente ho dovuto impostare un ambiente di sniffing per eseguire il debug una parte del traffico SSL Android.

Sembra che ora non sia più necessario impostare il proxy sul punto di accesso dell'emulatore (passaggi 2-4 su @ risposta di craig-russell). L'aggiunta del parametro di avvio -http-proxy è sufficiente. Anche provato su livelli API < 23 e riuscito.

mie specifiche: Android 2.3.1 Studio di Windows 10 Android versione dell'emulatore 25.2.5.0

Tutti i dettagli: http://www.devsbedevin.com/debugging-android-ssl-traffic/

0

C'è una possibilità che il server proxy restituisce alcune intestazioni HTTP aggiuntive nella sua risposta alla richiesta HTTP CONNECT dell'emulatore Android.Se è così, potresti riscontrare a known issue che dovrebbe essere stato risolto, ma a causa del desync tra i rami di sviluppo, la correzione non è mai stata rilasciata. Si prega di vedere my comment per i dettagli.

Per chiarire, le richieste HTTP non sono interessate dal problema in quanto non si basano sul tunneling delle connessioni (ad esempio HTTP CONNECT), ma vengono recapitate tramite l'inoltro di messaggi HTTP definito in RFC7230.

Problemi correlati