我正在制作一个可从网页检索信息的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并得到这个信息:
有关信息,当我在浏览器中复制粘贴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>
有什么想法吗?
答案 0 :(得分:0)
您的服务器正在计算机上运行,因此127.0.0.1
仅在该计算机上工作。如果您想通过手机访问它,则应写出计算机的本地地址(即:192.168.10.100
)。如果您的网络配置正确,它将可以正常工作。
我建议您将您的网站上传到公共主机,您可以从移动应用程序轻松访问它。
答案 1 :(得分:0)
知道了! http://10.0.2.2失败了,但是http://10.0.2.2:80没关系!