【发布时间】:2013-09-21 17:11:13
【问题描述】:
我正在尝试使用apache httpClient 从安卓模拟器连接到运行我的计算机的网络应用程序。
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 清单配置
<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:无法解析主机 “dev.example.com”:没有与主机名关联的地址
当使用我的计算机的 IP 地址时,我的应用程序运行良好。我的主机文件中也有条目
192.168.1.8 dev.example.com
我会在这里遗漏什么?看来android模拟器无法查看我的hosts文件来解析主机名!
【问题讨论】:
-
我猜安卓开发者决定不允许(不允许)模拟器使用主机名连接到本地工作站。它可以通过 IP 地址连接到本地盒子。听起来对我不公平。
标签: java android httpclient