【问题标题】:Why can't my app connect to localhost with easyphp devserver?为什么我的应用程序无法使用 easyphp devserver 连接到 localhost?
【发布时间】:2019-11-16 17:35:27
【问题描述】:

我正在制作一个从网页检索信息的安卓应用。 简而言之,就是代码:

    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,则连接正常。 但是,如果 url 是 http://localhost/myPage.phphttp://127.0.0.1:80/myPage.php 并打开了 easyphp devserver,我会捕获一个 IOException 并得到这个:

  • 在 android 模拟器上 => java.net.ConnectException:连接被拒绝
  • 在物理设备上(作为部署目标)=> java.net.ConnectException:无法连接到 /127.0.0.1(端口 80):连接失败:ECONNREFUSED(连接被拒绝)

有关信息,当我在浏览器中复制粘贴 http://127.0.0.1:80/myPage.php 时,授予访问权限。

我读到 android 模拟器可以“使用” localhost,建议使用 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>

有什么想法吗?

【问题讨论】:

  • 你确定你启动了apache服务器吗?
  • For information, when I copy paste http://127.0.0.1:80/myPage.php in my browser, 是的...在您电脑的浏览器中。但是您应该在 Android 设备或模拟器的浏览器中执行此操作。那不会过去的。
  • Allow from 127.0.0.1 Deny from all 错误。那将是来自同一台电脑的连接。更好:Allow from all Deny from nobody
  • 10.0.2.2 可以使用模拟器。或服务器计算机的本地 IP 地址。

标签: android localhost emulation easyphp connectexception


【解决方案1】:

您的服务器正在您的计算机上运行,​​因此127.0.0.1 仅在该计算机上运行。如果您想通过手机访问它,您应该写下您计算机的本地地址(即:192.168.10.100)。如果您的网络配置正确,它将正常工作。

我建议您将您的网站上传到公共主机,您可以通过移动应用轻松访问它。

【讨论】:

    【解决方案2】:

    知道了! http://10.0.2.2 失败,但 http://10.0.2.2:80 没问题!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-26
      • 2019-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-15
      • 2023-01-20
      • 1970-01-01
      相关资源
      最近更新 更多