Android: 模拟器无法解析本地工作站的主机名

6

我正在尝试使用 apache httpClient 从安卓模拟器连接到运行在我的计算机上的Web应用程序。

HttpPost post = new HttpPost("http://dev.example.com:8443/gatekeeper/rs/authenticate/login");
post.setHeader("Content-type","application/x-www-form-urlencoded");
post.setEntity(new UrlEncodedFormEntity(formparams));
HttpClient client=new DefaultHttpClient();
response = client.execute(post);

我已经按照以下方式配置了所需的 Android manifest

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

我已经确认模拟器上的浏览器可以访问互联网。但是我也无法从浏览器中访问应用程序的URL。我的应用程序还会出现以下错误:

java.net.UnknownHostException: Unable to resolve host "dev.example.com": No address associated with hostname

当使用我的计算机的IP地址时,我的应用程序可以正常工作。我还在hosts文件中添加了以下条目:

192.168.1.8 dev.example.com

我错过了什么吗?看起来android模拟器无法查看我的hosts文件以解析主机名!


我猜测安卓开发人员决定不允许(不启用)模拟器使用主机名连接到本地工作站。它可以使用IP地址连接到本地框,但这对我来说听起来不太公平。 - Srini Kandula
1个回答

0
请在调用响应之前以编程方式检查Connectivity,如果没有响应,则会抛出此异常。

当我使用IP地址时,程序运行良好,我认为这表明这不是连接问题?如果我错了,请纠正我。 - Srini Kandula
如果出现“无法解析主机”的错误提示,那么这意味着存在连接问题,可能是由于网络、端口或协议(如https或http)的原因。 - Trikaldarshiii
当在Java程序的主方法中从Eclipse运行相同的代码时,一切都正常工作。这让我怀疑安卓模拟器是否存在问题。 - Srini Kandula

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接