无法使用iOS 9.x设备在Codename One下连接到HTTP URL

Sha*_*mog 1 java codenameone ios9

我有一个Java的Web服务运行到Glassfish.当我尝试在iOS中使用此WS时,它不起作用,并且方法ConnectionRequest.readResponse(InputStream input)接收没有信息的输入.如果我尝试将其转换为byte [],则返回NULL.

实际上该服务没有到达WS.但它传递给ConnectionRequest.readResponse方法.

当使用带有@GET注释的WS并使用GET时它也可以工作.

Sha*_*mog 5

由于最近的安全漏洞,Apple阻止了对不安全URL的一些访问,这意味着之前工作的http代码可能会在iOS 9上停止为您工作.这通常是一个很好的举措,您应该尽可能使用https并避免使用http,但有时候特别是在使用内部或调试环境时(设置SSL很麻烦),这是不切实际的.

我们考虑默认添加所需的构建提示,但如果您只是包含该应用并且没有充分的理由,Apple似乎会拒绝您的应用.我们本可以只进行调试,但人们可能会在生产中遇到它.

目前的解决方案是使用古老的ios.plistInject构建提示并将其设置为:

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>
Run Code Online (Sandbox Code Playgroud)

请参阅https://www.codenameone.com/blog/hiding-url-security-advocacy.html