如何设置Android模拟器代理设置


110

我想使用Android模拟器中的浏览器,并且想在我的机器上使用代理设置。我该如何设置?

阅读非常好的Android手册,他们告诉我应该使用以下命令启动Android:

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

但是我仍然无法使用模拟器浏览器。请注意,我正在使用代理服务器的IP地址。

我究竟做错了什么?

Answers:


147

最简单,最好的方法是执行以下操作:Android Emulator 2.2已完成此操作

  1. 点击菜单
  2. 点击设置
  3. 单击无线和网络
  4. 转到移动网络
  5. 转到接入点名称
  6. 在这里您将打开Telkila Internet,单击它。
  7. 在“编辑访问点”部分中,输入“代理”和“端口”
  8. 还提供用户名和密码,其余字段保留为空白。

不适用于在本地主机上运行Fiddler2或其他代理的最常见用例....可能添加端口转发,但这也很
麻烦

1
它不适用于Android模拟器2.3.3,但对我来说适用于模拟器4.1.2。
2013年

24
这在android 5图像(api 21)上不再起作用
neomega 2015年

这个答案应该是被接受的!在Mac上与Burpsuite一起使用!
炼金术士

这也与Volley合作!添加以防万一有人偷了这个。
computingfreak

58

Android模拟器上的-http-proxy

在运行配置> Android应用程序>应用程序>目标>其他模拟器命令行选项中:-http-proxy http://xx.xxx.xx.xx:8080


那是什么蚀版本?我看不到该界面:(
Salman von Abbas 2014年

1
向下滚动了吗?
达尔潘2014年

还配置您的模拟器
Badre 2014年

3
使用用户名和密码的代理服务器,请使用以下格式:-http-proxy http://username:password@host:port
ashakirov 2014年

emulator is not recognized as a command我的情况下出现错误..我是否需要在PATH变量中添加任何内容??我正在使用Android Studio 1.0.1,并且在我的办公系统中具有代理。
Anil Bhaskar,2015年

40

现在,Android模拟器中有一个设置 在此处输入图片说明



为我工作。我的环境:MAC OS环境+ android模拟器和带有提琴手代理的Windows 7并行程序
Arthur Menezes

7
此设置对我从未起作用。我总是必须使用-http-proxy命令启动仿真器才能使其工作。
gsingh2011 '18

2
此菜单有一个经常发生的错误,自2017年中开始使我发疯。有时它起作用,有时在同一AVD上不起作用。只有重新创建AVD才能可靠地提供帮助。有时代理会在会话过程中掉线!在公司环境中,这意味着我被该帐户拒之门外。
halxinate

不过,看来我现在已经找到了解决方案:即使我的代理服务器需要身份验证,也可以像上面那样配置伪造的wifi热点以使用代理服务器,这是有帮助的,而热点配置根本没有身份验证。仅URL和端口有助于立即恢复丢失的连接。
halxinate

20

我在删除服务器名称中的http后尝试过,它对我有用。

emulator -avd myavd -http-proxy 168.192.1.2:3300


这仅适用于浏览器,但没有应用程序请求通过代理:(
Felipe Sabino

14

这对浏览器无济于事,但是您也可以在代码中定义代理以与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
您不应该在字符串PROXY中输入“ 127.0.0.1”。
米歇尔,

kuester2000看看我的问题在这里stackoverflow.com/questions/31723494/...
扎尔ËAhmer

9

在Android Studio上:

单击“应用程序”菜单下的“编辑配置”

在此处输入图片说明

  1. 转到App或Android App(作为默认设置)
  2. 点击调试器
  3. 点击LLDB启动命令
  4. 点按+
  5. 添加您的命令 -http-proxy http://168.192.1.2:3300

在此处输入图片说明

就是这样。

如果您想使用PC IP,请使用以下命令:

  • -http-proxy "$(ipconfig getifaddr en0)":8888 在MacOS上
  • -http-proxy "$(hostname -i)":8888 在Linux上

4

对于设置代理服务器,我们需要设置APNS设置。去做这个:

  1. 前往设定

  2. 转到无线和网络

  3. 转到移动网络

  4. 转到接入点名称。使用菜单添加新的APN

    设置代理=本地主机

    设置端口=您用于制作代理服务器的端口,在我的情况下是8989

    要设置名称和apn,请点击以下链接:

    根据您的sim卡片可以看到桌子


“通过代理服务器的身份验证不成功”,代理不需要身份验证,并且从未根据tcp转储看到任何请求。
gcb



2

没什么用的,我在64位Windows上使用eclipse:执行以下步骤...对我有用:Window-> Preferences-> Android-> Launch-> Default Emulator Options -http-proxy =“ http:/ /10.1.8.30:8080“

在日食窗口中


2

有时即使设置全部后也可能无法正常工作。我尝试了所有方法,例如

  1. 在模拟器APN中设置代理
  2. 通过Eclipse偏好设置进行设置-> Android->启动

没事。然后,我进行了以下工作,该工作立即生效。

转到Eclipse Run->运行配置。在Android应用程序下,您可以看到您的应用程序。现在,在右侧单击“目标”选项卡。在“其他仿真器命令行选项”下,添加以下内容。

-dns-server < 您的本地计算机中最多三个DNS服务器 > -http-proxy http:// < 您的代理 >:< 您的代理端口 >

这里的问题是DNS服务器设置应该来自您的本地系统。转到cmd提示符,然后运行ipconfig来检查您的DNS服务器。与代理服务器和端口相同。适用于您浏览器的所有内容都应放在此处。


2

最简单的方法是从模拟器(在我的情况下为T-mobile)中删除默认APN,并使用代理设置创建新的APN。

注意:我已经尝试了所有命令行选项,还尝试为模拟器设置代理默认APN,但没有任何效果。


我为此奋斗了一个多月,但终于成功了...感谢@usergo,他的回答给了我这个线索
Mahesh

2

根据您用于运行仿真器的环境,检查日志以查看仿真器如何启动。我的开始是:

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

然后,在我的情况下,添加-http-proxy选项:

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


1

如果您在代理环境下并且模拟器中没有运行Internet,则请不要更改模拟器中的任何设置。转到您的Eclipse项目,右键单击,单击“运行方式”,然后单击“运行配置”。在弹出的窗口中,选择“目标”并向下滚动一点,您会发现“附加仿真器命令行选项”在输入时在“附加仿真器命令行选项”中输入代理设置

-http-proxy http:// ee11s040:Om1l2ng3d4n2!08@hproxy.iitm.ac.in:3128

在此处输入图片说明

然后启动一个新的模拟器。



1

您确定您的地址是168.192.1.2而不是192.168.1.2吗?

注意交换的前两个数字。


1

在控制台中,启动下一个命令:

emulator -avd emulator_name -http-proxy you_proxy_ip_address:8080

0

具有AVD android模拟器:

  1. 打开模拟器(“ .. \ android-sdk \ AVD Manager.exe”)
  2. 转到工具
  3. 转到选项
  4. 在代理设置上:

在第一个字段(HTTP代理服务器)上仅设置IP地址,在第二个字段上设置代理的端口(例如:8080),即您的代理服务器(XXX.XXX.XXX.XXX)。

然后,在窗口上单击“关闭”并启动模拟器

----添加了...然后alex步骤适用于我的情况:

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"

这仅为下载SDK文件设置SDK管理器的代理设置。
布拉德

0

您可以在应用中设置代理。这可以使用Settings类来完成。例如,您可以将以下行添加到“ onCreate”方法中。

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

要更改代理设置,您必须在AndroidManifest.xml文件中具有android.permission.WRITE_SETTINGS权限。


0

对于某些leanback(TV)模拟器,您可以使用cmd:

adb shell settings put global http_proxy 10.0.2.2:8888

  • 8888 -是本地计算机(主机)上代理的端口,因此在本地计算机上,http代理为127.0.0.1:8888

要删除代理(在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 ""

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.