2009-10-15 34 views
91

Desidero utilizzare il browser all'interno dell'emulatore Android e desidero utilizzare le impostazioni proxy sulla mia macchina. Come posso impostare questo?Come configurare le impostazioni del proxy dell'emulatore Android?

Leggendo gli ottimi manuali di Android, mi dicono che dovrei iniziare Android utilizzando il seguente comando:

emulator -avd myavd -http-proxy http://168.192.1.2:3300 

ma non sono ancora in grado di utilizzare il browser emulatore. Si prega di notare che sto usando l'indirizzo IP per il mio server proxy.

Cosa sto sbagliando?

risposta

14

Questo non aiuterà per il browser, ma si può anche definire un proxy nel codice da utilizzare con un client HTTP:

// proxy 
private static final String PROXY = "123.123.123.123"; 
// proxy host 
private static final HttpHost PROXY_HOST = new HttpHost(PROXY, 8080); 
HttpParams httpParameters = new BasicHttpParams(); 
DefaultHttpClient httpClient = new DefaultHttpClient(httpParameters); 
httpClient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, PROXY_HOST); 
+1

non si dovrebbe mettere "127.0.0.1" for String PROXY. –

+0

kuester2000 dai un'occhiata alla mia domanda qui http://stackoverflow.com/questions/31723494/access-internet-via-another-country-using-android – Nepster

2

niente di che ha lavorato sto usando Eclipse su Windows a 64 bit : fare i passi folllowing ... ha funzionato per me: finestra -> Preferenze -> Android -> Avvia -> Opzioni predefinite Emulator -http-proxy = "http://10.1.8.30:8080"

nella finestra eclissi

139

Il più semplice e il modo migliore è quello di effettuare le seguenti operazioni: Questo è stato fatto per l'emulatore Android 2,2

  1. Clicca sul menu
  2. fare clic su Impostazioni
  3. Cliccare sulla Wireless & reti
  4. Go alle reti mobili
  5. Vai a nomi punto di accesso
  6. Qui si Telkila Internet, fare clic su di esso.
  7. Nella sezione Modifica punto di accesso, inserire "proxy" e "porta"
  8. Fornire anche il nome utente e la password, il resto dei campi li lascia vuoti.
+1

Giving +1 ......., come fare impostazioni altra versione di Android? –

+11

Funziona solo su browser non HttpUrlConnection – Ali

+0

Non funziona con il caso d'uso più comune di esecuzione di Fiddler2 o altro proxy su localhost .... probabilmente aggiungendo port forwarding, ma anche questo è un dolore – gcb

2

Per l'impostazione del server proxy, è necessario impostare APNS. Per fare questo:

  1. Vai a Impostazione

  2. Vai a wireless e reti

  3. Vai alle reti mobili

  4. Vai Nomi punti di accesso.Utilizzare il menu per aggiungere nuovi APN

    Imposta proxy = localhost

    Set Port = porta che si sta utilizzando per fare server proxy, nel mio caso è 8989

    For setting Name and apn here is the link:

    Secondo il vostro sim scheda puoi vedere la tabella

+0

"l'autenticazione tramite il server proxy non ha avuto successo" il proxy non richiede l'autenticazione e non ha mai visto alcuna richiesta in base al dump di tcp. – gcb

3

Non ho avuto fortuna finché non ho provato a impostare la variabile di ambiente http_proxy

http://developer.android.com/tools/help/emulator.html

"Se il comando -http-proxy non viene fornito, l'emulatore guarda la variabile ambiente http_proxy e usa automaticamente qualsiasi valore corrispondente al formato sopra descritto."

57

-http-proxy on Android Emulator

On Configurazione Esegui> Android Application> App> destinazione> Ulteriori opzioni della riga di comando Emulator: -http-proxy http://xx.xxx.xx.xx:8080

+0

che versione di eclissi è quella? Non vedo questa interfaccia :( –

+1

Scorri verso il basso? – Darpan

+0

configura anche il tuo emulatore – Badre

0

Avere l'AVD emulatore Android:

  1. Aprire il simulatore (".. \ android-sdk \ AVD Manager.exe")
  2. Vai a Strumenti
  3. Vai a Opzioni
  4. Su Impostazioni proxy:

Sul primo campo (HTTP Proxy Server) solo impostare l'indirizzo IP dove è il vostro proxy (XXX.XXX.XXX.XXX) sul secondo campo impostare la porta della vostra proxy (ad esempio: 8080)

Quindi, fare clic su Chiudi sulla finestra e avviare l'emulatore

---- Aggiunto ... Poi l'alex passi opere sul mio caso:

Click on Menu 
Click on Settings 
Click on Wireless & Networks 
Go to Mobile Networks 
Go to Access Point Names 
Here you will Telkila Internet (or other name), click on it. 
In the Edit access point section, input the "proxy" and "port" 
+0

Questo imposta solo le impostazioni del proxy per il gestore SDK, per scaricare i file SDK. – Brad

2

A volte, anche dopo aver impostato tutto, potrebbe non funzionare. Ho provato tutti i metodi come

  1. Impostazione del proxy nel Emulatore APN
  2. Impostando attraverso le preferenze Eclipse -> Android -> Launch

niente ha funzionato. Quindi ho fatto quanto segue che ha funzionato all'istante.

Goto eclipse Esegui -> Esegui configurazioni. Sotto Applicazioni Android puoi vedere la tua applicazione. Ora, sul lato destro, fare clic sulla scheda Destinazione. Sotto "Opzioni linea di comando dell'emulatore aggiuntivo" aggiungi quanto segue.

-dns server < server DNS dal computer locale FINO tre> http -http-proxy: // < il proxy>: < la porta del proxy>

La cattura ecco che l'impostazione del server DNS dovrebbe essere dal tuo sistema locale. Goto cmd prompt ed eseguire ipconfig per controllare i server DNS. Lo stesso con il server proxy e la porta. Tutto ciò che funziona per il tuo browser dovrebbe essere inserito qui.

0

È possibile impostare il proxy nella propria app. Questo può essere fatto usando la classe Impostazioni. Ad esempio è possibile aggiungere la seguente riga al metodo "onCreate".

Settings.System.putString(getContentResolver(), Settings.System.HTTP_PROXY, "myproxy:8080"); 

Per modificare le impostazioni del proxy, è necessario avere l'autorizzazione android.permission.WRITE_SETTINGS nel file AndroidManifest.xml.

1

Nel caso in cui ci si trovi in ​​ambiente proxy e internet non sia in esecuzione nel proprio emulatore, non modificare alcuna impostazione nell'emulatore. Vai al tuo progetto eclipse, fai clic con il pulsante destro del mouse, fai clic su "Esegui come" quindi fai clic su "Esegui configurazione". Nella finestra pop-up scegliere "Target" e scorrere verso il basso un po ', si trova "Ulteriori Emulator opzioni della riga di comando" Inserisci il tuo seduto qui in "Opzioni riga di comando aggiuntive Emulator" proxy come ho inserito

-http- delega http://ee11s040:[email protected]:3128

enter image description here

Poi avviare una nuova emulatore.

17

Ho provato dopo aver rimosso http nel nome del server e ha funzionato per me.

emulator -avd myavd -http-proxy 168.192.1.2:3300

+0

possiamo impostare il proxy quando l'emulatore è già in esecuzione? – Juude

+0

Funziona solo per il browser, ma nessuna richiesta di app sta passando attraverso il proxy :( –

0

il modo migliore per impostare proxy aziendale con l'autenticazione NTLM è quello di utilizzare cntlm:

http://cntlm.sourceforge.net/

Installare e configurare in C: \ Program Files \ Cntlm \ cntlm.ini By default cntlm, ascolta 127.0.0.1:3128

Nel dispositivo Android impostare un nuovo APN con proxy host 10.0.2.2 e porta 3128 10.0.2.2 è un alias speciale per il vostro ospite loopback di interfaccia (127.0.0.1 sul computer di sviluppo)

vedi anche http://developer.android.com/tools/devices/emulator.html#emulatornetworking

saluti

1

Sei sicuro che il tuo indirizzo è 168.192.1.2 e non 192.168.1.2?

Avviso i primi due numeri scambiati.

2

Il modo più semplice è eliminare l'APN predefinito dall'emulatore (nel mio caso il suo T-mobile) e creare un nuovo APN con le impostazioni del proxy.

Nota: ho provato tutte le opzioni della riga di comando e ho anche provato a impostare il proxy per l'APN predefinito degli emulatori ma non ha funzionato.

+0

ho faticato per questo più di un mese ma alla fine ha funzionato ... Grazie a @usergo la sua risposta mi ha dato questo indizio – Mahesh

1

A seconda dell'ambiente che si sta utilizzando per eseguire l'emulatore, controllare i registri per vedere come viene avviato l'emulatore. Il mio è iniziato come:

C: \ Users \ Johan \ AppData \ Local \ Android \ SDK \ Tools \ emulator.exe -netdelay nessuno -netspeed piena -avd Nexus_5X_API_23

quindi si aggiunge il -http opzione -proxy, nel mio caso:

C: \ Users \ Johan \ AppData \ Local \ Android \ SDK \ tools \ emulator.exe -netdelay nessuno -netspeed piena -avd Nexus_5X_API_23-http-proxy 192.168 .0.22: 8888

+1

dove trovare quei registri? – Ewoks

1

Installare Proxifier nel computer host. Setup proxifier to use your proxy. Non devi fare nient'altro. Starai bene. Proxifier intercetta le chiamate dal sistema (incluso l'emulatore di Android) e lo instrada attraverso il proxy configurato.

9

Ora c'è un ambiente in Android emulatore enter image description here

+0

T Il riferimento è https://developer.android.com/studio/run/emulator-networking.html#proxy –

1

Su Android Studio:

Clicca su Modifica configurazione sotto App Menu

enter image description here

  1. Vai a App o Android App (come impostazioni predefinite)
  2. tap on De sodomizzare
  3. Toccare LLDB comando di avvio
  4. Tap +
  5. Aggiungi comandate -http-proxy http://168.192.1.2:3300

enter image description here

`s esso.

roba più cool se volete usare il vostro IP del PC, utilizzare questo comando:

  • -http-proxy "$(ipconfig getifaddr en0)":8888 su MacOS
  • -http-proxy "$(hostname -i)":8888 su Linux
Problemi correlati