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?

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.

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


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



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


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);

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

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ę


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



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


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.


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.


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


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! 08@hproxy.iitm.ac.in: 3128

wprowadź opis obrazu tutaj

Następnie uruchom nowy emulator.


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


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.


1

W konsoli uruchom następne polecenie:

emulator -avd emulator_name -http-proxy you_proxy_ip_address:8080

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"

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.


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 ""

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.