好的,烧了 4 个小时,所以我求助于 SO 以寻求帮助。
以下是事实,以便您快速了解:
我们有一个现有的 AIR Mobile 应用程序,可以在我的笔记本电脑上正常运行,并且我们在 HTTP 模式下测试过的每台 Android 设备(Kindle、Nexus、Asus A100)
一旦我们切换到 HTTPS,只有笔记本电脑和 Kindle 设备会连接到服务器
在其他设备上,我收到了 FaultEvent 返回,错误提示:“发送失败。Channel.Connect.Failed 错误 NetConnection.Call.Failed https://www.example.com/flex2gateway/cfamfsecure/ ”
我可以在浏览器中点击 Nexus/A100 上面的 URL,它会返回一个空白页面,正如预期的那样
使用相同连接的基于 Flex 的应用程序多年来一直没有问题 - 这是第一个使用该 HTTPS 连接的 AIR 应用程序
我正在使用 Captive Runtime 功能
ColdFusion 9 后端
我无法调试网络流量,因为它只发生在平板电脑上,而且我目前不知道如何在平板电脑上捕获流量,就像我可以在笔记本电脑上使用 Fidder 一样(正在研究)
我会尽快提供您需要的任何其他信息 - 请告诉我。
除了上述之外,我还查看了其他一些内容,例如:确保 crossdomain.xml 文件存在并且设置正确,更改 CF 的 services-config.xml 文件中的设置等。
我目前的想法是,它可能与 SSL 证书中的链接有关——比如根 CA 在 Nexus 上不受信任之类的?(哪个是 GlobalSign Root CA)或者它与 Flex 时代的默认浏览器和 IE/代理有关?
以前从未见过这种情况,所以我会尽我所能获得帮助。
[更新]:我创建了一个小样本,您可以使用它来复制此问题: https ://www.dropbox.com/s/5nmilo3tbwr2k8d/HTTPTestSource.zip
它将包含您需要的一切:源代码、编译的 .AIR(用于桌面)、编译的 .APK(用于 Android 设备)。桌面在 HTTP 和 HTTPS 中运行良好,而移动 APK 仅适用于 HTTP。如果您愿意,我还提供了一个示例 CFC,可以放在您自己的服务器上。
感谢您阅读到这里!