2017-02-18 3 views
2

Я получаю информацию о потоке с вызовом на сервер, который должен дать мне некоторый объект JSON (и это происходит с Safari), но кажется, что и на симуляторе, и в Android оно заканчивается с неудачным исключением SSL. Обычный вызов - это обычный http, который больше не может быть использован в iOS, поэтому, в то время как в Safari, просто меняя его на https, этот трюк, в Codenameone приводит к сбою SSL-квитирования. Кроме того, тот же трюк в компоненте WebBrowser позволяет мне видеть веб-страницу радио без подтверждения SSL-подтверждения.Не удалось получить подтверждение SSL на ConnectionRequest

Я использую ConnectionRequest для извлечения данных JSON.

Есть ли способ избежать этого исключения без изменения конфигурации сервера?

+0

Это проблема в JavaSE, которую вы видите из-за полномочий центра сертификации на вашем сервере. Вы можете обходить это следующим образом: http://stackoverflow.com/questions/6659360/how-to-solve-javax-net-ssl-sslhandshakeexception-error Обратите внимание, что на устройстве это может быть проблемой, поскольку она находится вне наш контроль. Я предполагаю, что это только для отладки –

ответ

1

Codenameone работает немного отличается от браузеров. Браузеры могут предоставить всплывающее окно всплывающих окон, которые вы можете игнорировать, но Codenameone не позволит вам просто изменить незащищенный http на https.

Вы все еще можете использовать обычный HTTP с приложением и заставить его работать на прошивке, добавив эту сборку намек:

ios.plistInject = <key>NSAppTransportSecurity</key><dict><key>NSAllowsArbitraryLoads</key><true/></dict><key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleURLName</key> <string>com.myCompany.myPackageName.MyApp</string> </dict> <dict> <key>CFBundleURLSchemes</key> <array> <string>MyApp</string> </array> </dict> </array> 

Если у вас уже есть ios.plistInject сборки подсказка, просто добавьте это значение после запятой в перед существующей стоимостью.

com.myCompany.myPackageName.MyApp - ваше обратное доменное имя dot ваше имя приложения.

+0

Спасибо, Diamond, вы действительно присутствуете! Я читал об этом намеке на сборку, но я также читал, что мне придется объяснять Apple, почему я хочу, чтобы мое приложение было небезопасным, поэтому я сохраняю его как последний шанс. Я буду ждать лучших решений, прежде чем принимать это решение! –

+0

Используйте это решение на этапе разработки и обеспечьте связь с веб-сервисами, когда вы будете готовы к работе. Сертификат SSL стоит всего несколько долларов в год от многих провайдеров, и вы можете переключиться на https. Я понимаю, почему Apple заставляет это, потому что любое нарушение безопасности в приложениях Apple App Store всегда будет влиять на их репутацию в области безопасности в мобильном пространстве. – Diamond

Смежные вопросы