Jak skonfigurować ustawienia proxy emulatora Androida

110

Chcę używać przeglądarki w emulatorze Androida i chcę używać ustawień proxy na moim komputerze. Jak mogę to ustawić?

Czytając bardzo dobre podręczniki Androida, mówią mi, że powinienem uruchomić Androida za pomocą następującego polecenia:

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

Ale nadal nie mogę korzystać z przeglądarki emulatora. Należy pamiętać, że używam adresu IP dla mojego serwera proxy.

Co ja robię źle?

gath
źródło

Odpowiedzi:

147

Najprostszym i najlepszym sposobem jest wykonanie następujących czynności: Zostało to zrobione dla emulatora Androida 2.2

  1. Kliknij menu
  2. Kliknij Ustawienia
  3. Kliknij Bezprzewodowe i sieci
  4. Przejdź do sieci komórkowych
  5. Przejdź do nazw punktów dostępu
  6. Tutaj będziesz Telkila Internet, kliknij na niego.
  7. W sekcji Edytuj punkt dostępu wprowadź „proxy” i „port”
  8. Podaj również nazwę użytkownika i hasło, pozostałe pola pozostaw puste.
krisDrOid
źródło
Nie działa z najczęstszym przypadkiem użycia Fiddler2 lub innego serwera proxy na hoście lokalnym ... prawdopodobnie dodaje przekierowanie portów, ale to też jest ból
gcb
1
Nie działa na emulatorze Androida 2.3.3, ale działa dla mnie na emulatorze 4.1.2.
azgolfer
24
To już nie działa na obrazach Androida 5 (api 21)
neomega
ta odpowiedź powinna być zaakceptowana! Działa z Burpsuite na Macu!
alchemik
działało to również z Volley! dodano na wypadek, gdyby ktoś to grepował.
computingfreak
58

-http-proxy na emulatorze Androida

Konfiguracja przy uruchomieniu> Aplikacja na Androida> Aplikacja> Cel> Dodatkowe opcje wiersza poleceń emulatora : -http -proxy http: //xx.xxx.xx.xx: 8080

dmotta
źródło
co to za wersja zaćmienia? nie widzę tego interfejsu :(
Salman von Abbas
1
Czy przewinąłeś w dół?
Darpan
skonfiguruj również emulator
Badre
3
dla proxy z nazwą użytkownika i hasłem użyj tego formatu:-http-proxy http://username:password@host:port
ashakirov
błąd emulator is not recognized as a commandw moim przypadku .. czy muszę dodać coś w zmiennej PATH? Używam Android Studio 1.0.1 i mam proxy w moim systemie biurowym.
Anil Bhaskar
40

Teraz jest ustawienie w emulatorze Androida wprowadź opis obrazu tutaj

Chris Gunawardena
źródło
Pracował dla mnie. My ambient: MAC OS ambient + emulator android i paralele Windows 7 z Fiddler proxy
Arthur Menezes
7
To ustawienie nigdy nie działało dla mnie. Zawsze muszę uruchamiać emulator za pomocą polecenia -http-proxy, aby działał.
gsingh2011
2
To menu ma powracający błąd, który doprowadza mnie do szału od połowy 2017 roku. Czasami działa, czasami nie na tym samym AVD. Tylko ponowne utworzenie AVD może pomóc niezawodnie. Czasami proxy spada w środku sesji! W środowisku korporacyjnym oznacza to, że moje konto jest blokowane z powodu tego gówna.
halxinate
Wygląda na to, że na razie znalazłem rozwiązanie: skonfigurowanie tego fałszywego hotspotu Wi-Fi, jak powyżej, do korzystania z serwera proxy, pomaga, mimo że mój serwer proxy wymaga uwierzytelnienia, którego ta konfiguracja hotspotu w ogóle nie ma. Tylko adres URL i port pomogły natychmiast przywrócić utraconą łączność.
halxinate
20

Próbowałem po usunięciu http w nazwie serwera i zadziałało.

emulator -avd myavd -http-proxy 168.192.1.2:3300

Yadvendar
źródło
Działa to tylko w przeglądarce, ale żadne żądanie aplikacji nie przechodzi przez serwer proxy :(
Felipe Sabino
14

Nie pomoże to przeglądarce, ale możesz również zdefiniować serwer proxy w swoim kodzie do użytku z klientem 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
źródło
1
Nie należy wpisywać „127.0.0.1” dla ciągu znaków PROXY.
Michaël
kuester2000 spójrz na moje pytanie tutaj stackoverflow.com/questions/31723494/…
Zar E Ahmer
9

W Android Studio:

Kliknij Edytuj konfigurację w menu aplikacji

wprowadź opis obrazu tutaj

  1. Przejdź do aplikacji lub aplikacji na Androida (jako ustawienia domyślne)
  2. dotknij Debugger
  3. Stuknij w polecenie uruchamiania LLDB
  4. Dotknij +
  5. Dodaj polecenie -http-proxy http://168.192.1.2:3300

wprowadź opis obrazu tutaj

to jest to.

Więcej fajnych rzeczy, jeśli chcesz użyć adresu IP swojego komputera, użyj tego polecenia:

  • -http-proxy "$(ipconfig getifaddr en0)":8888 na MacOS
  • -http-proxy "$(hostname -i)":8888 w systemie Linux
Maher Abuthraa
źródło
4

Aby ustawić serwer proxy, musimy ustawić APNSustawienia. Aby to zrobić:

  1. Przejdź do ustawień

  2. Przejdź do sieci bezprzewodowych i sieci

  3. Idź do sieci komórkowych

  4. Przejdź do nazw punktów dostępu. Użyj menu, aby dodać nowe apns

    Ustaw Proxy = localhost

    Ustaw Port = port, którego używasz do tworzenia serwera proxy, w moim przypadku jest to 8989

    Do ustawienia nazwy i apn tutaj jest link:

    Zgodnie z twoją simkartą możesz zobaczyć tabelę

saba
źródło
„uwierzytelnianie przez serwer proxy nie powiodło się” proxy nie wymaga autoryzacji i nigdy nie widziało żadnego żądania zgodnie ze zrzutem tcp.
gcb
3

Nie miałem szczęścia, dopóki nie spróbowałem ustawić zmiennej środowiskowej http_proxy

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

„Jeśli polecenie -http-proxy nie zostanie podane, emulator wyszukuje zmienną środowiskową http_proxy i automatycznie używa dowolnej wartości zgodnej z formatem opisanym powyżej”.

Peter Taylor
źródło
3

Zainstaluj Proxifier na swoim komputerze-hoście. Skonfiguruj proxy, aby korzystać z serwera proxy . Nie musisz robić nic więcej. Będzie dobrze. Proxifier przechwytuje wywołania z systemu (w tym emulatora Androida) i kieruje je przez skonfigurowane proxy.

Gamma.X
źródło
3
Pamiętaj, że Proxifier to komercyjne oprogramowanie, które należy kupić.
Robert
2

nic z tego nie działało, używam eclipse w 64-bitowym systemie Windows: wykonaj następujące czynności ... zadziałało dla mnie: Okno -> Preferencje -> Android -> Uruchom -> Domyślne opcje emulatora -http-proxy = "http: / /10.1.8.30:8080 "

w twoim oknie zaćmienia

Siddharth
źródło
2

Czasami nawet po ustawieniu wszystkiego może nie działać. Wypróbowałem wszystkie metody, takie jak

  1. Ustawianie proxy w emulatorze APN
  2. Ustawianie go za pomocą preferencji zaćmienia -> Android -> Uruchom

Nic nie działało. Następnie wykonałem następujące czynności, które zadziałały natychmiast.

Idź do Eclipse Run -> uruchom konfiguracje. W sekcji Aplikacje na Androida możesz zobaczyć swoją aplikację. Teraz po prawej stronie kliknij kartę Cel. W sekcji „Dodatkowe opcje wiersza poleceń emulatora” dodaj następujące elementy.

-dns-server < serwery DNS z twojego komputera lokalnego do trzech > -http-proxy http: // < twoje proxy >: < twój port proxy >

Problem polega na tym, że ustawienia serwera DNS powinny pochodzić z systemu lokalnego. Przejdź do znaku zachęty cmd i uruchom ipconfig, aby sprawdzić serwery DNS. To samo z serwerem proxy i portem. Wszystko, co działa w Twojej przeglądarce, powinno zostać tutaj umieszczone.

Jerokdeep
źródło
2

Najłatwiej jest usunąć domyślny APN z emulatora (w moim przypadku jest to T-mobile) i utworzyć nowy APN z ustawieniami proxy.

Uwaga: wypróbowałem wszystkie opcje wiersza poleceń, a także próbowałem ustawić proxy dla domyślnego APN emulatorów, ale nic nie działało.

Mahesh
źródło
walczyłem o to ponad miesiąc, ale w końcu udało mi się to zadziałać ... Dzięki @usergo jego odpowiedź dała mi tę wskazówkę
Mahesh
2

W zależności od środowiska używanego do uruchamiania emulatora sprawdź dzienniki, aby zobaczyć, jak uruchamia się emulator. Mój zaczyna się jako:

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

Następnie dodajesz opcję -http-proxy, w moim przypadku:

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

Johan Franzén
źródło
1

W przypadku, gdy pracujesz w środowisku proxy, a internet nie działa w Twoim emulatorze, nie zmieniaj żadnych ustawień w emulatorze. Przejdź do swojego projektu eclipse, kliknij prawym przyciskiem myszy, kliknij „Uruchom jako”, a następnie kliknij „Uruchom konfigurację”. W wyskakującym okienku wybierz "Cel" i przewiń trochę w dół, znajdziesz "Dodatkowe opcje wiersza poleceń emulatora" Wprowadź ustawienia proxy tutaj w "Dodatkowe opcje wiersza poleceń emulatora", jak wprowadziłem

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

wprowadź opis obrazu tutaj

Następnie uruchom nowy emulator.

Anil Chahal
źródło
1

najlepszym sposobem na ustawienie korporacyjnego serwera proxy z uwierzytelnianiem NTLM jest użycie cntlm:

http://cntlm.sourceforge.net/

Zainstaluj i skonfiguruj w C: \ Program Files \ Cntlm \ cntlm.ini Domyślnie cntlm, nasłuchuje 127.0.0.1:3128

Na urządzeniu z Androidem ustaw nowy APN z hostem proxy 10.0.2.2 i portem 3128 10.0.2.2 to specjalny alias do interfejsu sprzężenia zwrotnego hosta (127.0.0.1 na komputerze deweloperskim)

zobacz także http://developer.android.com/tools/devices/emulator.html#emulatornetworking

pozdrowienia

usergo
źródło
1

Czy jesteś pewien, że twój adres to 168.192.1.2, a nie 192.168.1.2?

Zwróć uwagę na zamienione pierwsze dwie liczby.

josch
źródło
1

W konsoli uruchom następne polecenie:

emulator -avd emulator_name -http-proxy you_proxy_ip_address:8080
a_subscriber
źródło
0

Posiadanie emulatora AVD dla Androida:

  1. Otwórz symulator („.. \ android-sdk \ AVD Manager.exe”)
  2. Idź do Narzędzia
  3. Przejdź do opcji
  4. Ustawienia proxy:

W pierwszym polu (HTTP Proxy Server) ustaw tylko adres IP, pod którym znajduje się Twój serwer proxy (XXX.XXX.XXX.XXX), w drugim polu ustaw port swojego serwera proxy (przykład: 8080)

Następnie kliknij Zamknij w oknie i uruchom emulator

---- Dodano ... Następnie kroki Alexa działają w moim przypadku:

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
źródło
To ustawia tylko ustawienia proxy dla menedżera SDK do pobierania plików SDK.
Brad,
0

Możesz ustawić serwer proxy w swojej aplikacji. Można to zrobić za pomocą klasy Settings. Na przykład możesz dodać następujący wiersz do swojej metody „onCreate”.

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

Aby zmienić ustawienia proxy, musisz mieć uprawnienie android.permission.WRITE_SETTINGS w pliku AndroidManifest.xml.

Sachini Samarasinghe
źródło
0

Dla niektórych leanback emulatorów (telewizyjnych) możesz użyć cmd:

adb shell settings put global http_proxy 10.0.2.2:8888

  • 8888 - to port proxy na komputerze lokalnym (hoście), więc na komputerze lokalnym proxy http będzie miało wartość 127.0.0.1:8888

Aby usunąć proxy (uruchom sekwencyjnie w linii 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
źródło