正如其他人所说,你需要一对夫妇的事情,能够连接您的网络服务:
- 模拟器知道什么是你需要连接到
服务器的IP地址 - 服务器您通过HTTPS连接名称URL必须解决的SSL证书
要做到这一点的领域,你需要:
从你的桌面外壳(例如用于Linux,但会在Windows类似,并承担了Android SDK龙头安装在/android-sdk
):
cd /android-sdk/tools/
./emulator -avd NexusS -partition-size 128
其中NexusS是你的设备的AVD名称。您MUST
从命令行启动模拟器,否则您将在后面的步骤中出现错误。
现在打开另一个shell终端,让你的仿真器/系统/ etc/hosts文件:
cd /android-sdk/platform-tools
./adb remount
./adb pull /system/etc/hosts /tmp/
的remount
是设置分区写入。上面的命令pull
将主机文件复制到桌面的/tmp/hosts
。
从桌面编辑在/ tmp/hosts文件,以配合您的需要,也就是说,如果Web服务是https://www.example.com/foo和IP为192.168.1.10:
127.0.0.1 locahost
192.168.1.10 www.example.com
然后将其推回模拟器:
cd /android-sdk/platform-tools
./adb push /tmp/hosts /system/etc/
您应该能够立即连接到网络服务。
请注意,如果是自签名证书,您仍可能有错误。
下面的图片是编辑hosts
文件之前:
编辑完成后:
检查此... http://stackoverflow.com/questions/7256955/java-sslexception-hostname-in-certificate-didnt-match。 – 2012-02-09 14:26:42
@Dark Rider我正在尝试调用本地网络托管的web服务,而不是我的系统。我也无法从仿真器浏览器中查看它。 – Vikram 2012-02-21 11:15:29
看看这个链接,看看为什么DNS查找失败:http://stackoverflow.com/questions/3184463/host-is-unresolved-in-lan – 2012-03-16 15:56:46