So richten Sie die Proxy-Einstellungen für den Android-Emulator ein

110

Ich möchte den Browser im Android-Emulator verwenden und die Proxy-Einstellungen auf meinem Computer verwenden. Wie kann ich das einrichten?

Beim Lesen der sehr guten Android-Handbücher wird mir gesagt, dass ich Android mit dem folgenden Befehl starten soll:

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

Ich kann den Emulator-Browser aber immer noch nicht verwenden. Bitte beachten Sie, dass ich die IP-Adresse für meinen Proxyserver verwende.

Was mache ich falsch?

gath
quelle

Antworten:

147

Der einfachste und beste Weg ist, Folgendes zu tun: Dies wurde für Android Emulator 2.2 durchgeführt

  1. Klicken Sie auf Menü
  2. Klicken Sie auf Einstellungen
  3. Klicken Sie auf Wireless & Networks
  4. Gehen Sie zu Mobile Networks
  5. Gehen Sie zu Access Point-Namen
  6. Hier werden Sie Telkila Internet, klicken Sie darauf.
  7. Geben Sie im Abschnitt Zugriffspunkt bearbeiten den "Proxy" und den "Port" ein.
  8. Geben Sie auch den Benutzernamen und das Passwort an. Die restlichen Felder lassen sie leer.
krisDrOid
quelle
Funktioniert nicht mit dem häufigsten Anwendungsfall, in dem Fiddler2 oder ein anderer Proxy auf localhost ausgeführt wird. Wahrscheinlich wird eine Portweiterleitung hinzugefügt, aber das ist auch ein
Problem
1
Es funktioniert nicht mit Android Emulator 2.3.3, aber mit Emulator 4.1.2 für mich.
Azgolfer
24
Dies funktioniert nicht mehr auf Android 5 Bilder (API 21)
Neomega
Diese Antwort sollte akzeptiert werden! Funktioniert mit Burpsuite auf dem Mac!
Alchemist
Das hat auch mit Volley funktioniert! fügte hinzu, nur für den Fall, dass jemand das begriff.
Computingfreak
58

-http-Proxy auf Android Emulator

Bei Konfiguration ausführen> Android-Anwendung> App> Ziel> Zusätzliche Emulator-Befehlszeilenoptionen: -http-proxy http: //xx.xxx.xx.xx: 8080

dmotta
quelle
Welche Eclipse-Version ist das? Ich sehe diese Schnittstelle nicht :(
Salman von Abbas
1
Hast du nach unten gescrollt?
Darpan
Konfigurieren Sie auch Ihren Emulator
Badre
3
Für Proxy mit Benutzername und Passwort verwenden Sie dieses Format:-http-proxy http://username:password@host:port
ashakirov
Fehler emulator is not recognized as a commandin meinem Fall .. muss ich etwas in PATH Variable hinzufügen? Ich verwende Android Studio 1.0.1 und habe einen Proxy in meinem Office-System.
Anil Bhaskar
40

Jetzt gibt es eine Einstellung im Android-Emulator Geben Sie hier die Bildbeschreibung ein

Chris Gunawardena
quelle
Hat für mich gearbeitet. Meine Umgebung: MAC OS Ambient + Android Emulator und Parallelen Windows 7 mit Fiddler Proxy
Arthur Menezes
7
Diese Einstellung hat bei mir nie funktioniert. Ich muss den Emulator immer mit dem Befehl -http-proxy starten, damit er funktioniert.
Gsingh2011
2
Dieses Menü hat einen wiederkehrenden Fehler, der mich ab Mitte 2017 verrückt macht. Manchmal funktioniert es, manchmal nicht auf derselben AVD. Nur die Neuerstellung der AVD kann zuverlässig helfen. Manchmal fällt der Proxy mitten in einer Sitzung ab! In der Unternehmensumgebung bedeutet dies, dass ich wegen dieser Scheiße von meinem Konto ausgeschlossen werde.
halxinate
Es sieht jedoch so aus, als hätte ich die Lösung für den Moment gefunden: Die Konfiguration dieses gefälschten WLAN-Hotspots wie oben für die Verwendung des Proxys hilft, obwohl mein Proxy die Authentifizierung erfordert, die diese Hotspot-Konfiguration überhaupt nicht hat. Nur URL und Port haben dazu beigetragen, die verlorene Konnektivität sofort wiederherzustellen.
halxinate
20

Ich habe es versucht, nachdem ich http im Servernamen entfernt hatte, und es hat bei mir funktioniert.

emulator -avd myavd -http-proxy 168.192.1.2:3300

Yadvendar
quelle
Dies funktioniert nur für Browser, aber keine App-Anfrage geht über den Proxy :(
Felipe Sabino
14

Dies hilft dem Browser nicht, aber Sie können in Ihrem Code auch einen Proxy definieren, der mit einem HTTP-Client verwendet werden soll:

// 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
quelle
1
Sie sollten nicht "127.0.0.1" für String PROXY eingeben.
Michaël
kuester2000 werfen Sie einen Blick auf meine Frage hier stackoverflow.com/questions/31723494/…
Zar E Ahmer
9

Auf Android Studio:

Klicken Sie im App-Menü auf Konfiguration bearbeiten

Geben Sie hier die Bildbeschreibung ein

  1. Gehen Sie zu App oder Android App (als Standardeinstellungen)
  2. Tippen Sie auf Debugger
  3. Tippen Sie auf den LLDB-Startbefehl
  4. Tippen Sie auf +
  5. Fügen Sie Ihren Befehl hinzu -http-proxy http://168.192.1.2:3300

Geben Sie hier die Bildbeschreibung ein

das ist es

Weitere coole Sachen, wenn Sie Ihre PC-IP verwenden möchten, verwenden Sie diesen Befehl:

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

Zum Einstellen des Proxyservers müssen wir die APNSEinstellung festlegen . Um dies zu tun:

  1. Gehen Sie zu Einstellung

  2. Gehen Sie zu WLAN und Netzwerken

  3. Gehen Sie zu Mobilfunknetzen

  4. Gehen Sie zu den Zugriffspunktnamen. Verwenden Sie das Menü, um neue Apns hinzuzufügen

    Setzen Sie Proxy = localhost

    Setzen Sie Port = Port, den Sie zum Erstellen eines Proxyservers verwenden, in meinem Fall 8989

    Zum Einstellen von Name und apn ist hier der Link:

    Entsprechend Ihrer simKarte können Sie die Tabelle sehen

Saba
quelle
"Authentifizierung über den Proxyserver war nicht erfolgreich" Der Proxy erfordert keine Authentifizierung und hat laut TCP-Dump keine Anforderung gesehen.
GCB
3

Ich hatte kein Glück, bis ich versuchte, die Umgebungsvariable festzulegen http_proxy

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

"Wenn der Befehl -http-proxy nicht angegeben wird, sucht der Emulator nach der Umgebungsvariablen http_proxy und verwendet automatisch alle Werte, die dem oben beschriebenen Format entsprechen."

Peter Taylor
quelle
3

Installieren Sie Proxifier auf Ihrem Host-Computer. Richten Sie den Proxifier für die Verwendung Ihres Proxys ein . Sie müssen nichts anderes tun. Es wird dir gut gehen. Proxifier fängt die Anrufe vom System (einschließlich des Android-Emulators) ab und leitet sie über den konfigurierten Proxy weiter.

Gamma.X
quelle
3
Beachten Sie, dass Proxifier eine kommerzielle Software ist, die gekauft werden muss.
Robert
2

Nichts davon hat funktioniert. Ich verwende Eclipse unter Windows 64-Bit: Führen Sie die folgenden Schritte aus ... es hat bei mir funktioniert: Fenster -> Einstellungen -> Android -> Start -> Standard-Emulatoroptionen -http-proxy = "http: / /10.1.8.30:8080 "

in Ihrem Eclipse-Fenster

Siddharth
quelle
2

Manchmal funktioniert es auch nach dem Einstellen nicht mehr. Ich habe alle Methoden wie ausprobiert

  1. Festlegen des Proxys im Emulator-APN
  2. Festlegen über die Eclipse-Einstellungen -> Android -> Starten

Nichts hat geklappt. Dann habe ich folgendes gemacht, was sofort funktioniert hat.

Gehe zu Eclipse Run -> Run Configurations. Unter Android-Anwendungen sehen Sie Ihre Anwendung. Klicken Sie nun auf der rechten Seite auf die Registerkarte Ziel. Fügen Sie unter "Zusätzliche Emulator-Befehlszeilenoptionen" Folgendes hinzu.

-dns-server < DNS-Server von Ihrem lokalen Computer bis zu drei > -http-proxy http: // < Ihr Proxy >: < Ihr Proxy-Port >

Der Haken dabei ist, dass die DNS-Servereinstellung von Ihrem lokalen System stammen sollte. Gehe cmd Aufforderung und führen Sie ipconfig Ihre DNS - Server zu überprüfen. Gleiches gilt für den Proxyserver und den Port. Was auch immer für Ihren Browser funktioniert, sollte hier eingegeben werden.

Jerokdeep
quelle
2

Am einfachsten ist es, den Standard-APN aus dem Emulator (in meinem Fall T-Mobile) zu löschen und einen neuen APN mit Ihren Proxy-Einstellungen zu erstellen.

Hinweis: Ich habe alle Befehlszeilenoptionen ausprobiert und auch versucht, den Proxy für den Standard-APN des Emulators festzulegen, aber nichts hat funktioniert.

Mahesh
quelle
Ich hatte mehr als einen Monat damit zu kämpfen, aber es hat endlich funktioniert ... Dank @usergo gab mir seine Antwort diesen Hinweis
Mahesh
2

Abhängig von der Umgebung, in der Sie den Emulator ausführen, überprüfen Sie die Protokolle, um festzustellen, wie der Emulator gestartet wird. Meins wird gestartet als:

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

Dann fügen Sie in meinem Fall die Option -http-proxy hinzu:

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

Johan Franzén
quelle
1

Wenn Sie sich in einer Proxy-Umgebung befinden und das Internet in Ihrem Emulator nicht ausgeführt wird, ändern Sie bitte keine Einstellungen im Emulator. Gehen Sie zu Ihrem Eclipse-Projekt, klicken Sie mit der rechten Maustaste, klicken Sie auf "Ausführen als" und dann auf "Konfiguration ausführen". Wählen Sie im Popup-Fenster "Ziel" und scrollen Sie ein wenig nach unten. Sie finden "Zusätzliche Emulator-Befehlszeilenoptionen". Geben Sie Ihre Proxy-Einstellung hier unter "Zusätzliche Emulator-Befehlszeilenoptionen" ein, wie ich eingegeben habe

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

Geben Sie hier die Bildbeschreibung ein

Starten Sie dann einen neuen Emulator.

Anil Chahal
quelle
1

Der beste Weg, um einen Unternehmens-Proxy mit ntlm-Authentifizierung festzulegen, ist die Verwendung von cntlm:

http://cntlm.sourceforge.net/

Installieren und konfigurieren Sie in C: \ Programme \ Cntlm \ cntlm.ini Standardmäßig hört cntlm 127.0.0.1:3128

Stellen Sie im Android-Gerät einen neuen APN mit Proxy-Host 10.0.2.2 ein und Port 3128 10.0.2.2 ist ein spezieller Alias ​​für Ihre Host-Loopback-Schnittstelle (127.0.0.1 auf Ihrem Entwicklungscomputer).

Siehe auch http://developer.android.com/tools/devices/emulator.html#emulatornetworking

Grüße

usergo
quelle
1

Sind Sie sicher, dass Ihre Adresse 168.192.1.2 und nicht 192.168.1.2 lautet?

Beachten Sie die getauschten ersten beiden Zahlen.

josch
quelle
1

Starten Sie in der Konsole den nächsten Befehl:

emulator -avd emulator_name -http-proxy you_proxy_ip_address:8080
a_subscriber
quelle
0

Mit dem AVD Android Emulator:

  1. Öffnen Sie den Simulator (".. \ android-sdk \ AVD Manager.exe")
  2. Gehen Sie zu Extras
  3. Gehen Sie zu Optionen
  4. Zu den Proxy-Einstellungen:

Stellen Sie im ersten Feld (HTTP-Proxyserver) nur die IP-Adresse ein, unter der sich Ihr Proxy befindet (XXX.XXX.XXX.XXX). Im zweiten Feld legen Sie den Port Ihres Proxys fest (Beispiel: 8080).

Klicken Sie dann im Fenster auf Schließen und starten Sie den Emulator

---- Hinzugefügt ... Dann funktionieren die Alex-Schritte in meinem Fall:

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
quelle
Dadurch werden nur die Proxy-Einstellungen für den SDK-Manager zum Herunterladen von SDK-Dateien festgelegt.
Brad
0

Sie können den Proxy in Ihrer App festlegen. Dies kann mit der Klasse "Einstellungen" erfolgen. Beispielsweise können Sie Ihrer "onCreate" -Methode die folgende Zeile hinzufügen.

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

Um die Proxy-Einstellungen zu ändern, müssen Sie die Berechtigung android.permission.WRITE_SETTINGS in Ihrer AndroidManifest.xml-Datei haben.

Sachini Samarasinghe
quelle
0

Für einige leanback(TV-) Emulatoren können Sie cmd verwenden:

adb shell settings put global http_proxy 10.0.2.2:8888

  • 8888 - ist ein Proxy-Port auf einem lokalen Computer (Host). Auf einem lokalen Computer lautet der http-Proxy also 127.0.0.1:8888

So entfernen Sie den Proxy (nacheinander in cmd-Zeile ausführen):

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
quelle