Android模拟器代理设置

时间:2016-02-19 10:01:32

标签: android proxy android-emulator

我正在尝试设置网络代理来查看模拟器流量。

现在,如果我对模拟器的网络设置进行了更改(10.0.2.2:< port&gt ;,那么一切正常。 但是,如果我尝试使用模拟器-avd myAvd -http-proxy localhost:&lt;命令行设置代理。端口&gt; ,SSL流量无法通过,我有时间错误。

任何人都可以使这个工作吗?

由于

3 个答案:

答案 0 :(得分:75)

不确定您使用的是哪个模拟器,但Android Studio 2中宣布的new Android模拟器存在问题 - Bug Tracker

要获得解决方法,我必须使用设置为API 23的new仿真器执行以下操作:

  1. 在启动模拟器时将-http-proxy http://192.168.x.x:yyyy作为标志传递。 For details how to do this, see here.
  2. 在模拟器中配置代理的Access Point设置。为此,您可以转到设置 - &gt; 更多 - &gt; 移动网络 - &gt; 接入点名称并编辑现有的接入点。
  3. 最后,Developer Settings中有一个设置,用于配置设备以使用旧版DHCP客户端而不是新客户端。必须将其配置为使用旧版本。
  4. 打开和关闭Airplane模式。
  5. Access point settings for proxy Developer settings for DHCP client

答案 1 :(得分:8)

查看https://code.google.com/p/android/issues/detail?id=201402#c6上的评论#6。如果您使用计算机LAN IP设置代理使用-http-proxy命令行开关,则不需要其他解决方法。

例如:

$ emulator -avd Nexus_5X_API_23 -http-proxy http://10.102.80.149:8888

答案 2 :(得分:0)

您的代理服务器有可能在响应Android模拟器的HTTP CONNECT请求时返回一些额外的HTTP标头。如果是这样,您可能会遇到a known issue,它现在应该已经修复,但是由于开发分支之间的异步,修复程序从未被释放过。有关详细信息,请参阅my comment

为了澄清,HTTP请求不受该问题的影响,因为它们不依赖于连接隧道(即HTTP CONNECT),而是通过RFC7230中定义的HTTP消息转发来传递。