Adobe Air 无法连接到 iOS10 上的服务器
Adobe Air Can't Connect to Server on iOS10
我在 Appstore 上有一个应用程序已经有 2 年了。
我用 Adobe AIR 开发的。
在 iOS10 我的应用程序无法运行。无法连接到 http 链接。
我调试并从连接中得到错误:
错误 #2044:未处理的 ioError:。 text=Error #2032:流错误。 URL: http://api.website.net/check.php
我使用 HTTPStatusEvent.HTTP_STATUS 来理解任何解决方案,它给出了 0
有什么方法可以解决吗?
我的代码:
var urlReq:URLRequest = new URLRequest ("http://api.website.net/check.php");
urlReq.method = URLRequestMethod.POST;
var urlVars:URLVariables = new URLVariables();
urlVars.user_id = Main.instance.userID;
urlReq.data = urlVars;
var loader:URLLoader = new URLLoader (urlReq);
loader.addEventListener(Event.COMPLETE, onCreditComplete);
loader.addEventListener(HTTPStatusEvent.HTTP_RESPONSE_STATUS, httpStatusHandler);
loader.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
loader.dataFormat = URLLoaderDataFormat.VARIABLES;
loader.load(urlReq);
听起来它与 iOS App Transport 安全设置有关。
要启用 http
请求,您需要在应用程序描述符中将域定义为例外:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>api.website.net</key>
<dict>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
<key>NSIncludesSubdomains</key>
<true/>
</dict>
</dict>
</dict>
或添加全局忽略安全设置:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
应将这些设置添加到应用程序描述符 iPhone 设置中的 InfoAdditions
节点:
<iPhone>
<InfoAdditions><![CDATA[
<key>UIDeviceFamily</key>
<array>
<string>1</string>
<string>2</string>
</array>
<!-- Add the above settings here -->
]]></InfoAdditions>
<requestedDisplayResolution>high</requestedDisplayResolution>
<Entitlements>
<![CDATA[
]]>
</Entitlements>
</iPhone>
我在 Appstore 上有一个应用程序已经有 2 年了。 我用 Adobe AIR 开发的。
在 iOS10 我的应用程序无法运行。无法连接到 http 链接。
我调试并从连接中得到错误: 错误 #2044:未处理的 ioError:。 text=Error #2032:流错误。 URL: http://api.website.net/check.php
我使用 HTTPStatusEvent.HTTP_STATUS 来理解任何解决方案,它给出了 0
有什么方法可以解决吗?
我的代码:
var urlReq:URLRequest = new URLRequest ("http://api.website.net/check.php");
urlReq.method = URLRequestMethod.POST;
var urlVars:URLVariables = new URLVariables();
urlVars.user_id = Main.instance.userID;
urlReq.data = urlVars;
var loader:URLLoader = new URLLoader (urlReq);
loader.addEventListener(Event.COMPLETE, onCreditComplete);
loader.addEventListener(HTTPStatusEvent.HTTP_RESPONSE_STATUS, httpStatusHandler);
loader.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
loader.dataFormat = URLLoaderDataFormat.VARIABLES;
loader.load(urlReq);
听起来它与 iOS App Transport 安全设置有关。
要启用 http
请求,您需要在应用程序描述符中将域定义为例外:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>api.website.net</key>
<dict>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
<key>NSIncludesSubdomains</key>
<true/>
</dict>
</dict>
</dict>
或添加全局忽略安全设置:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
应将这些设置添加到应用程序描述符 iPhone 设置中的 InfoAdditions
节点:
<iPhone>
<InfoAdditions><![CDATA[
<key>UIDeviceFamily</key>
<array>
<string>1</string>
<string>2</string>
</array>
<!-- Add the above settings here -->
]]></InfoAdditions>
<requestedDisplayResolution>high</requestedDisplayResolution>
<Entitlements>
<![CDATA[
]]>
</Entitlements>
</iPhone>