Comment configurer les paramètres de proxy de l'émulateur Android

110

Je souhaite utiliser le navigateur dans l'émulateur Android et je souhaite utiliser les paramètres de proxy sur ma machine. Comment puis-je configurer cela?

En lisant les très bons manuels Android, ils me disent que je devrais démarrer Android en utilisant la commande suivante:

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

Mais je ne suis toujours pas en mesure d'utiliser le navigateur de l'émulateur. Veuillez noter que j'utilise l'adresse IP de mon serveur proxy.

Qu'est-ce que je fais mal?

gath
la source

Réponses:

147

Le moyen le plus simple et le meilleur est de faire ce qui suit: Cela a été fait pour Android Emulator 2.2

  1. Cliquez sur Menu
  2. Cliquez sur Paramètres
  3. Cliquez sur Sans fil et réseaux
  4. Accéder aux réseaux mobiles
  5. Aller aux noms des points d'accès
  6. Ici, vous allez Telkila Internet, cliquez dessus.
  7. Dans la section Modifier le point d'accès, saisissez le «proxy» et le «port»
  8. Fournissez également le nom d'utilisateur et le mot de passe, le reste des champs les laisse vides.
krisDrOid
la source
Ne fonctionne pas avec le cas d'utilisation le plus courant de l'exécution de Fiddler2 ou d'un autre proxy sur localhost .... ajoutant probablement une redirection de port, mais c'est aussi une douleur
gcb
1
Cela ne fonctionne pas sur l'émulateur Android 2.3.3, mais fonctionne sur l'émulateur 4.1.2 pour moi.
azgolfer
24
Cela ne fonctionne plus sur les images Android 5 (api 21)
neomega
cette réponse devrait être celle acceptée! Fonctionne avec Burpsuite sur mac!
alchimiste
cela a également fonctionné avec Volley! ajouté juste au cas où quelqu'un saluerait cela.
computingfreak
58

-http-proxy sur l'émulateur Android

Lors de la configuration d'exécution> Application Android> Application> Cible> Options de ligne de commande d'émulateur supplémentaires: -http-proxy http: //xx.xxx.xx.xx: 8080

Dmotta
la source
quelle version d'éclipse est-ce? je ne vois pas cette interface :(
Salman von Abbas
1
Avez-vous fait défiler vers le bas?
Darpan
configurez également votre émulateur
Badre
3
pour un proxy avec nom d'utilisateur et mot de passe, utilisez ce format:-http-proxy http://username:password@host:port
ashakirov
erreur emulator is not recognized as a commanddans mon cas .. dois-je ajouter quelque chose dans la variable PATH ??. J'utilise Android Studio 1.0.1 et j'ai un proxy dans mon système de bureau.
Anil Bhaskar
40

Maintenant, il y a un paramètre dans l'émulateur Android entrez la description de l'image ici

Chris Gunawardena
la source
A travaillé pour moi. Mon environnement: MAC OS ambiant + émulateur Android et parallèles Windows 7 avec proxy Fiddler
Arthur Menezes
7
Ce paramètre n'a jamais fonctionné pour moi. Je dois toujours démarrer l'émulateur avec la commande -http-proxy pour le faire fonctionner.
gsingh2011
2
Ce menu a un bug récurrent qui me rend fou à partir de la mi-2017. Parfois cela fonctionne, parfois pas sur le même AVD. Seule la recréation de l'AVD pourrait aider de manière fiable. Parfois, le proxy tombe au milieu d'une session! Dans l'environnement de l'entreprise, cela signifie que je suis bloqué de mon compte à cause de cette merde.
halxinate le
Cependant, il semble que j'ai trouvé la solution pour le moment: configurer ce faux hotspot wifi comme ci-dessus pour utiliser le proxy aide même si mon proxy nécessite l'authentification, ce que cette configuration de hotspot n'a pas du tout. Juste une URL et un port ont aidé à restaurer immédiatement la connectivité perdue.
halxinate le
20

J'ai essayé après avoir supprimé http dans le nom du serveur et cela a fonctionné pour moi.

emulator -avd myavd -http-proxy 168.192.1.2:3300

Yadvendar
la source
Cela ne fonctionne que pour le navigateur, mais aucune demande d'application ne passe par le proxy :(
Felipe Sabino
14

Cela n'aidera pas le navigateur, mais vous pouvez également définir un proxy dans votre code à utiliser avec 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);
kuester2000
la source
1
Vous ne devez pas mettre "127.0.0.1" pour String PROXY.
Michaël
kuester2000 jetez un œil à ma question ici stackoverflow.com/questions/31723494/...
Zar E Ahmer
9

Sur Android Studio:

Cliquez sur Modifier la configuration dans le menu de l'application

entrez la description de l'image ici

  1. Accédez à l'application ou à l'application Android (par défaut)
  2. appuyez sur le débogueur
  3. Appuyez sur la commande de démarrage LLDB
  4. Appuyez sur +
  5. Ajoutez votre commande -http-proxy http://168.192.1.2:3300

entrez la description de l'image ici

c'est tout.

Plus de trucs sympas si vous voulez utiliser l'adresse IP de votre PC, utilisez cette commande:

  • -http-proxy "$(ipconfig getifaddr en0)":8888 sur MacOS
  • -http-proxy "$(hostname -i)":8888 sur Linux
Maher Abuthraa
la source
4

Pour définir le serveur proxy, nous devons définir le APNSparamètre. Pour faire ça:

  1. Aller au réglage

  2. Accéder au sans fil et aux réseaux

  3. Accéder aux réseaux mobiles

  4. Accédez aux noms des points d'accès. Utilisez le menu pour ajouter de nouveaux apns

    Définir Proxy = localhost

    Définissez Port = port que vous utilisez pour créer un serveur proxy, dans mon cas, c'est 8989

    Pour définir le nom et l'apn, voici le lien:

    Selon votre simcarte, vous pouvez voir le tableau

saba
la source
"l'authentification via le serveur proxy a échoué" le proxy ne nécessite pas d'authentification et n'a jamais vu de requête selon tcp dump.
gcb
3

Je n'ai pas eu de chance avant d'essayer de définir la variable d'environnement http_proxy

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

"Si la commande -http-proxy n'est pas fournie, l'émulateur recherche la variable d'environnement http_proxy et utilise automatiquement toute valeur correspondant au format décrit ci-dessus."

Peter Taylor
la source
3

Installez Proxifier sur votre ordinateur hôte. Configurez le proxy pour utiliser votre proxy . Vous n'avez rien d'autre à faire. Tu seras bien. Proxifier intercepte les appels du système (y compris l'émulateur Android) et les achemine via le proxy configuré.

Gamma.X
la source
3
Notez que Proxifier est un logiciel commercial qui doit être acheté.
Robert
2

rien de cela n'a fonctionné J'utilise eclipse sur Windows 64 bits: suivez les étapes suivantes ... cela a fonctionné pour moi: Fenêtre -> Préférences -> Android -> Lancer -> Options d'émulateur par défaut -http-proxy = "http: / /10.1.8.30:8080 "

dans votre fenêtre d'éclipse

Siddharth
la source
2

Parfois même après avoir réglé tout cela peut ne pas fonctionner. J'ai essayé toutes les méthodes comme

  1. Définition du proxy dans l'APN de l'émulateur
  2. Le paramétrer via les préférences d'éclipse -> Android -> Lancer

Rien n'a fonctionné. Ensuite, j'ai fait ce qui suit qui a fonctionné instantanément.

Aller à Eclipse Exécuter -> exécuter les configurations. Sous Applications Android, vous pouvez voir votre application. Maintenant, sur le côté droit, cliquez sur l'onglet Cible. Sous les «Options de ligne de commande d'émulateur supplémentaires», ajoutez ce qui suit.

-dns-server < serveurs DNS de votre machine locale jusqu'à trois > -http-proxy http: // < votre proxy >: < votre port proxy >

Le problème ici est que le paramètre du serveur DNS doit provenir de votre système local. Aller à cmd rapide et exécuter ipconfig pour vérifier vos serveurs DNS. Idem avec le serveur proxy et le port. Tout ce qui fonctionne pour votre navigateur doit être mis ici.

Jerokdeep
la source
2

Le moyen le plus simple est de supprimer l'APN par défaut de l'émulateur (dans mon cas, son T-mobile) et de créer un nouvel APN avec vos paramètres de proxy.

Remarque: j'ai essayé toutes les options de ligne de commande et j'ai également essayé de définir le proxy pour l'APN par défaut des émulateurs, mais rien n'a fonctionné.

Mahesh
la source
Je luttais pour cela plus d'un mois mais je l'ai finalement fait fonctionner ... Merci à @usergo sa réponse m'a donné cet indice
Mahesh
2

Selon l'environnement que vous utilisez pour exécuter l'émulateur, vérifiez les journaux pour voir comment l'émulateur est démarré. Le mien est commencé comme:

C: \ Users \ johan \ AppData \ Local \ Android \ Sdk \ tools \ emulator.exe -netdelay none -netspeed full -avd Nexus_5X_API_23

Ensuite, vous ajoutez l'option -http-proxy, dans mon cas:

C: \ Users \ johan \ AppData \ Local \ Android \ Sdk \ tools \ emulator.exe -netdelay none -netspeed full -avd Nexus_5X_API_23 -http-proxy 192.168.0.22:8888

Johan Franzén
la source
1

Si vous êtes dans un environnement proxy et qu'Internet ne fonctionne pas dans votre émulateur, veuillez ne modifier aucun paramètre dans l'émulateur. Accédez à votre projet eclipse, faites un clic droit, cliquez sur "Exécuter en tant que" puis cliquez sur "Exécuter la configuration". Dans la fenêtre pop-up, choisissez "Cible" et faites défiler un peu vers le bas, vous trouverez "Options de ligne de commande d'émulateur supplémentaires" Entrez votre paramètre de proxy ici dans "Options de ligne de commande d'émulateur supplémentaires" comme je l'ai entré

-http-proxy http: // ee11s040: Om1l2ng3d4n2! [email protected]: 3128

entrez la description de l'image ici

Ensuite, démarrez un nouvel émulateur.

Anil Chahal
la source
1

la meilleure façon de définir un proxy d'entreprise avec l'authentification ntlm est d'utiliser cntlm:

http://cntlm.sourceforge.net/

Installer et configurer dans C: \ Program Files \ Cntlm \ cntlm.ini Par défaut cntlm, écoute 127.0.0.1:3128

Dans l'appareil Android, définissez un nouvel APN avec l'hôte proxy 10.0.2.2 et le port 3128 10.0.2.2 est un alias spécial pour votre interface de bouclage hôte (127.0.0.1 sur votre machine de développement)

voir aussi http://developer.android.com/tools/devices/emulator.html#emulatornetworking

Cordialement

usergo
la source
1

Etes-vous sûr que votre adresse est 168.192.1.2 et non 192.168.1.2?

Notez les deux premiers nombres échangés.

Josch
la source
1

Dans la console, lancez la commande suivante:

emulator -avd emulator_name -http-proxy you_proxy_ip_address:8080
a_subscriber
la source
0

Avoir l'émulateur Android AVD:

  1. Ouvrez le simulateur (".. \ android-sdk \ AVD Manager.exe")
  2. Aller aux outils
  3. Aller aux options
  4. Sur les paramètres de proxy:

Sur le premier champ (HTTP Proxy Server) définissez uniquement l'adresse IP où se trouve votre proxy (XXX.XXX.XXX.XXX) sur le second champ définissez le port de votre proxy (exemple: 8080)

Ensuite, cliquez sur Fermer dans la fenêtre et démarrez l'émulateur

---- Ajouté ... Ensuite, les étapes alex fonctionnent sur mon cas:

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"
user1981081
la source
Cela définit uniquement les paramètres de proxy pour le gestionnaire de SDK, pour le téléchargement des fichiers SDK.
Brad
0

Vous pouvez définir le proxy dans votre application. Cela peut être fait en utilisant la classe Settings. Par exemple, vous pouvez ajouter la ligne suivante à votre méthode "onCreate".

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

Pour modifier les paramètres du proxy, vous devez disposer de l'autorisation android.permission.WRITE_SETTINGS dans votre fichier AndroidManifest.xml.

Sachini Samarasinghe
la source
0

Pour certains leanbackémulateurs (TV), vous pouvez utiliser cmd:

adb shell settings put global http_proxy 10.0.2.2:8888

  • 8888 - est un port de proxy sur une machine locale (hôte), donc sur une machine locale le proxy http sera 127.0.0.1:8888

Pour supprimer le proxy (exécuter séquentiellement dans la ligne cmd):

adb shell settings delete global http_proxy

adb shell settings put global global_http_proxy_host ""

adb shell settings put global global_http_proxy_port ""

ultraon
la source