Приложение Transport Security заблокировало ресурс HTTP с открытым текстом
![введите описание изображения здесь]()
Я использую Socket.IO-библиотеку в swift, и я продолжаю получать эту ошибку:
App Transport Security заблокировала ресурс netartext HTTP (http://) поскольку он небезопасен. Временные исключения можно настроить через файл вашего приложения Info.plist.
когда я пытаюсь отправить HTTP-запрос. Я добавил ключи к plist в соответствии с официальной документацией Apple, но это не помогло.
Ответы
Ответ 1
Вам нужно исправить это следующим образом:
![введите описание изображения здесь]()
Чтобы сделать это проще, это правильный xml в файле info.plist
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>localhost</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
<true/>
<key>NSTemporaryExceptionMinimumTLSVersion</key>
<string>TLSv1.1</string>
</dict>
</dict>
</dict>
измените localhost
на фактический сервер
Проверьте таблицу параметров NSAppTransportSecurity
Если вы хотите, чтобы все связи с любым доменом вы могли сделать:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
Однако вы должны использовать последние только на этапе разработки.
Ответ 2
Другим способом решить эту проблему, которую я счел более удобной, является отключение приложения Transport Security по умолчанию с помощью клавиши NSAllowsArbitraryLoads
. Таким образом, любые домены, которые вы не включаете в словарь NSExceptionDomains
(или если вы вообще не включаете NSExceptionDomains
), не будут обладать безопасностью транспорта приложений.
![введите описание изображения здесь]()
Ответ 3
Я вижу неправильный ключ и опечатку на скриншоте. Вот рабочий пример:
![screen]()
Ответ 4
Проект Xcode → перейдите в info.plist и нажмите кнопку +, затем добавьте (Настройки безопасности при работе в приложении). Разверните, разрешите произвольные загрузки. Установите YES.
Спасибо
Ответ 5
Я работаю в xCode 8.2. Это немного отличается, но, редактируя файл PLIST, вам нужно добавить эти два элемента в строку App Transport Security Settings
Line...:
Allow Arbitrary Loads
и Allow Arbitrary Loads in Web Content
... и дайте им ключ YES
.
Это сработало для меня, надеюсь, эта работа для вас и извините за мой английский.
![введите описание изображения здесь]()
![введите описание изображения здесь]()