有没有人设法让 Android 模拟器在需要身份验证的代理后面工作?

我尝试将 -http-proxy 参数设置为

http://DOMAIN/USERNAME:PASSWORD@IP:PORT

但我没有成功。

我尝试按照文档进行操作,但没有成功。我也尝试过 -verbose-proxy 设置但这似乎不再存在。

有什么指点吗?

有帮助吗?

解决方案

我设法在 Adndroid 2.2 模拟器中做到这一点。

Go to "Settings" -> "Wireless & Networks" -> "Mobile Networks" -> "Access Point Names" -> "Telkila"

在那里,在属性“代理”和属性“端口”中的代理主机名设置了代理主机名。

其他提示

好像从SDK 1.5开始, -http-proxy 标志也不起作用。对我有用的是在模拟器中启动 android 映像,然后一旦 Android 运行,请转到 Home > Menu > Settings > Wireless Controls > Mobile Networks > Access Point Names 然后为默认访问点设置 http 代理设置。

完成 APN 代理设置后,我就可以使用模拟器的浏览器来上网了。但是,地图等其他功能仍然无法使用。

我记得有同样的问题 - 在网上搜索后,我找到了这个解决方案 - 从命令行,

1. > adb shell
2. # sqlite3 /data/data/com.android.providers.settings/databases/settings.db
3. sqlite> INSERT INTO system VALUES(99,’http_proxy', 'proxy:port');
4. sqlite>.exit

编辑:编辑答案以反映最新版本的 Android。

显然这个问题仅在 Android 2.x 和 Windows 上出现。这里有一个未解决的错误:http://code.google.com/p/android/issues/detail?id=5508&q=emulator%20proxy&colspec=ID%20Type%20Status%20Owner%20Summary%20Stars

  1. 找到文件 androidtool.cfgC:\Documents and Settings\YOUR USER NAME\.android\

  2. 添加这一行:

    http.proxyLogin=USER@PASSWORD
    
  3. 保存文件并尝试打开 Android SDK。

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

  • 前往设置
  • 转到无线和网络
  • 前往移动网络
  • 转至接入点名称。使用菜单添加新的 apn
  • 设置代理=本地主机
  • 设置 Port = 您用来创建代理服务器的端口,在我的例子中是 8989

设置 Name 和 apn 的链接如下:

根据您的SIM卡,您可以看到该表

这对我有用: http://code.google.com/p/android/issues/detail?id=5508#c39
显然模拟器中有一个错误,迫使您使用代理的 IP 地址而不是名称......

Jay,虽然那是存放此信息的理想位置,但它尚未更新为 2.1。下面我将列出目前不适用于 2.1 模拟器的方法。

http-post 参数不适用于 2.1 模拟器。在 2.1 模拟器中的 APN 列表中设置代理不起作用。通过 sql-lite 将代理直接插入系统表不适用于 2.1。

事实上,让浏览器通过我在 2.1 中找到的模拟器连接到互联网的唯一方法是根本不使用代理。我真的希望这个问题能尽快得到解决,因为有很多人有同样的问题。

  1. 启动命令提示符。

  2. 转到模拟器所在的文件夹。一般来说,它会在Android SDK的tools文件夹中。

  3. 然后使用以下命令:

    emulator -avd <avd name> -http-proxy <server>:<proxy>
    

    通过使用它,我们将能够使用浏览器访问互联网。

在 Eclipse 3.45 中使用带有代理的 Android SDK 1.5 模拟器

转到 Package Explorer -> 右键单击​​您的 Android 项目 -> 运行方式 -> 运行配置。

在左列的Android应用程序下,选择您的项目 - >在右列上,您可以看到Android |目标|常见标签 - >

选择Target -> 底部的“Additional Emulator Command Line Options” ->

-http代理 http://www.gateProxy.com:1080 -调试代理 http://www.gateProxy.com:1080

->运行/关闭。

我没有使用过 Android 模拟器,但我已经为 perl 和 wget 以及 Windows 上的一些 cygwin 工具设置了 $http_proxy 环境变量。这可能适用于 Android,但域名中的斜杠似乎是一个潜在的问题。我知道我尝试将我的域名“GLOBAL”放在那里,但最终将其取出并坚持使用: http://$USER:password@www-proxy.company.com:80

我经常遇到的一个问题是程序无法被告知使用代理进行 DNS 查询。如果没有,我总是会得到一个未找到的主机名。我想找到一个本地 DNS 解析器,它可以为所有不会使用代理的程序使用代理。

我能够使用 HTTP 嗅探器而不是代理查看流量。我使用了 HTTPScoop,这是一个不错的小应用程序。

使用 HTTPScoop 的好处还在于,当我打开互联网共享并让我的手机使用 Mac 上的 WiFi 时,我还可以看到实际设备上的流量。因此,这对于调试手机本身和模拟器上发生的情况非常有用。

这样,您使用什么模拟器并不重要,因为嗅探器看到的流量与模拟器、设备、编译器设置等无关。

我将解释所有步骤:

  1. 进入 Android 模拟器 > 无线和网络 > 移动网络 > 接入点 > Telkilla > 中的设置,在这里进行必要的设置,如代理、端口等。

我想现在关于代理设置的一切都清楚了......

对于Android2.3.3设置 - >无线和网络 - > Mobilenetworks-> accessPointNames-> telkila->在此处设置代理和端口(xx.xx.xx.xx和port)

当我使用以下命令时,我遇到了同样的问题:

emulator-x86.exe -http-proxy domain\user:password@proxyIP:port -avd MyAVD

我收到代理身份验证错误。

最后,我必须使用此处的 Cntlm 绕过代理 NTLM 身份验证:

http://sourceforge.net/projects/cntlm/

然后在简单配置 cntlm.ini 后,我使用以下命令:

emulator-x86.exe -http-proxy 127.0.0.1:3128 -avd MyAVD

它有效:)

使用新版本的 Android Studio 及其模拟器,这是一项简单的任务。

按模拟器的“更多”按钮,选择“设置”->“代理”选项卡。所有需要的配置都在那里。

enter image description here

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top