AWS EC2 服务器拒绝 Ionic/Capacitor/Android 连接到 PHP 个文件

AWS EC2 server refusing Ionic/Capacitor/Android connections to PHP files

我最近开始构建一个 Angular Ionic 应用程序,它连接到 AWS EC2 服务器上的 PHP 脚本。一切正常,除了当我在 phone.

上构建应用程序后尝试通过 Android 连接时

响应是简单的 404 响应,没有其他信息。当我查看 Android Studio 上的日志时,我看到以下响应:

E/Capacitor: Unable to open asset URL: [api address]

我已经将前端的 HttpClient 调用和后端的 php 文件都缩减为最简单的形式,但仍然没有:

<?php
     echo "Hello";
?>

我知道 Capacitor 仅在几个月前才更新为 3,我担心它与此有关。我正在使用 PHP 7.

更新 问题确实是 cleartext,但由于 HttpClient 没有捕获到错误,所以问题变得更加复杂,所以我只是返回了一个未知的失败响应。

为了首先看到它是明文,我首先必须为本机 HTTP 插件更改 HttpClient 并在我的 phone 上测试时检查日志(HTTP 无法通过浏览器工作)。

这时我才发现我没有正确更改配置文件。

只要您的 PHP 网络服务器不在 Android 设备上 运行 直接尝试连接到 localhost / 127.0.0.1 就不会工作,您需要使用另一个域/IP,您的网络服务器可用并且 Android 设备可以访问。您也可以通过在 Android 设备的浏览器中打开 URL 来检查。

如果这对您不可行,您也可以使用 port forwarding via adb 将您的 Web 服务器的端口转发到 Android 设备上的本地端口。

如果您使用其他域/IP,请确保您的 Web 服务器不只侦听本地连接,并且未被防火墙或类似设备阻止。

此外,如果您使用未加密的连接(即 http 而不是 https),您可能需要在 Capacitor config 中启用 cleartext 配置选项。