要求通过Android模拟器进行身份验证的代理

时间:2020-03-05 18:43:22  来源:igfitidea点击:

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

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

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

但没有成功。

我试过按照文档无济于事。我也尝试了-verbose-proxy设置,但是似乎不再存在。

有指针吗?

解决方案

回答

我没有使用过Android Emulator,但已经为perl和wget以及Windows上的一些cygwin工具设置了$ http_proxy环境变量。这可能对我们来说适用于android,但是域名中的斜杠似乎是一个潜在的问题。
我知道我曾尝试将域名" GLOBAL"放入其中,但最终将其取出并坚持使用:http:// $ USER:[email protected]:80

我遇到的一个问题是很多程序也无法告知使用代理进行DNS查询。如果没有,我总是找不到主机名。我想找到一个本地dns解析器,该解析器可以将代理用于所有不需要的程序。

回答

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

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。

回答

似乎从SDK 1.5开始,-http-proxy标志也不起作用。对我有用的是在模拟器中启动android映像,然后在Android运行后转到"首页>菜单>设置>无线控件>移动网络>接入点名称",然后将http代理设置设置为默认值切入点。

有了APN代理设置之后,我就可以使用仿真器的浏览器上网。但是,诸如Maps之类的其他内容仍然无法正常工作。

回答

周杰伦,尽管这将是获取此信息的理想场所,但尚未针对2.1进行过更新。下面,我将列出当前不适用于2.1仿真器的方法。

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

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

回答

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

回答

我设法在Adndroid 2.2模拟器中做到了。

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

在那边,在属性" Proxy"中设置代理主机名。
以及属性"端口"中的代理端口

回答

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

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

这样,我们使用哪种仿真器都没有关系,因为嗅探器看到的流量独立于仿真器,设备,编译器设置等。