要求通过Android模拟器进行身份验证的代理
是否有人设法使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上网时,我还可以看到实际设备上的流量。因此,这对于调试手机本身和仿真器上发生的情况非常有用。
这样,我们使用哪种仿真器都没有关系,因为嗅探器看到的流量独立于仿真器,设备,编译器设置等。