iOS 9 — App Transport Security не загружает XML-файлы

Я обновляю свое приложение до iOS9. Чтобы поддержать ATS, я перевел все свои URL-адреса на https. Но ATS выдает ошибку ниже в файлах XML. Файлы JSON, расположенные в том же месте, не вызывают проблем.

App Transport Security заблокировала загрузку ресурсов открытого текста HTTP (http://), поскольку это небезопасно. Временные исключения можно настроить с помощью файла Info.plist вашего приложения.

URL-адрес JSON: https://www.example.com/content/123.xml.

URL-адрес XML: https://www.example.com/content/123.json

Подскажите, пожалуйста, в чем может быть дело? Заранее спасибо.


person iOSTech    schedule 01.09.2015    source источник


Ответы (3)


Выполните следующие команды в Терминале:

curl -v 'https://www.example.com/content/123.xml'
curl -v 'https://www.example.com/content/123.json'

Весьма вероятно, что ваш сервер не поддерживает SSL и перенаправляет ваш URL на стандартную загрузку http.

В этом случае будет заголовок Location, указывающий новый URL-адрес.

person deadbeef    schedule 01.09.2015
comment
Когда я попробовал curl, я получил ответ — ***‹!DOCTYPE HTML PUBLIC —//IETF//DTD HTML 2.0//EN› ‹html›‹head› ‹title›301 Moved Permanently‹/title› ‹/head› ‹body› ‹h1›Перемещен навсегда‹/h1› ‹p›Документ перемещен ‹a href=example.com/content/123.xml›здесь‹/a›.‹/p› ‹/body›‹/html›****, но URL я использую, защищен HTTPS. как вы думаете, это проблема со стороны моего сервера? - person iOSTech; 01.09.2015
comment
Можете ли вы показать мне весь вывод curl, включая заголовки http? Каково значение заголовка Location? Это http или https ссылка? - person deadbeef; 01.09.2015

Добавьте его в свое приложение info.plist

<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
person Pallavi Konda    schedule 01.09.2015

В plist вашего приложения добавьте:

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>
person Andr3a88    schedule 01.09.2015