我正在制作一个可从网页检索信息的android应用。 简而言之,有代码:
protected Void doInBackground(String... params) {
HttpURLConnection conn = null;
try {
URL url;
url = new URL(getHomeUrl() + "myPage.php");
conn = (HttpURLConnection) url.openConnection();
if( conn.getResponseCode() == HttpURLConnection.HTTP_OK ){
doThings(conn);
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if(conn != null) {
conn.disconnect();
}
}
return null;
}
如果URL为http://www.mywebsite.com/myPage.php,则连接正常。 但是,如果使用easyphp devserver的网址是http://localhost/myPage.php或http://127.0.0.1:80/myPage.php,我会捕获到IOException并得到这个信息:
- 在android模拟器上=> java.net.connectexception:连接被拒绝
- 在物理设备上(作为部署目标)=> java.net.connectexception:无法连接到/127.0.0.1(端口80):连接失败:ECONNREFUSED(连接被拒绝)
有关信息,当我在浏览器中复制粘贴http://127.0.0.1:80/myPage.php时,将授予访问权限。
我读到android模拟器可以“使用”本地主机,建议改为使用10.0.2.2,但它也不起作用。 我想这是apache conf的问题,但是我有这个,对我来说似乎是正确的:
<Directory "D:/Utilitaires/EasyPHP-devserver-17/eds-www">
Options FollowSymLinks Indexes ExecCGI
AllowOverride All
Order deny,allow
Allow from 127.0.0.1
Deny from all
Require all granted
</Directory>
有什么想法吗?