2015-07-07 1 views
0

Я создаю приложение iOS, которое использует API для отдыха, размещенный на HTTPS. Этот домен имеет действительный сертификат, одобренный CA для SSL и TLS. Но когда я делаю запрос NSURL из своего приложения, он отлично работает в первый раз, но через полчаса, когда я сделаю запрос NSURL, он возвращает Ошибка NSURL -1012.Получение ошибки NSURL -1012 в запросе NSURL

Я также пытался справиться аутентификации вызовы и TLS цепи проверки с использованием перечисленных ниже способов: - (BOOL) соединение: (NSURLConnection *) подключение canAuthenticateAgainstProtectionSpace: (NSURLProtectionSpace *) protectionSpace - (Недействительными) подключение: (NSURLConnection *) подключение didReceiveAuthenticationChallenge: (NSURLAuthenticationChallenge *) вызов

процесс я использовал, который упоминается в ссылке ниже: https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/URLLoadingSystem/Articles/AuthenticationChallenges.html#//apple_ref/doc/uid/TP40009507-SW3

Когда я отладки canAuthenticateAgainstProtectionSpace и проверил значение protectionspace он отображает запрос у NSURLAuthenticationMethodServerTrust проблему.

Я пробовал разные сценарии для решения этой проблемы. 1. В canAuthenticateAgainstProtectionSpace метода, если я нашел NSURLAuthenticationMethodServerTrust проверки, то я вернулся НЕТ, то didReceiveAuthenticationChallenge метод никогда не вызывается, но API возвращает пустую строку. 2. В canAuthenticateAgainstProtectionSpace метода, если я нашел NSURLAuthenticationMethodServerTrust проверки, то я вернулся ДА, то didReceiveAuthenticationChallenge метод называется и когда я использовал continueWithoutCredentialForAuthenticationChallenge, performDefaultHandlingForAuthenticationChallenge и методы cancelAuthenticationChallenge один за другим, но ничего не происходит, всегда я получаю тот же результат пустой строки и на cancelAuthenticationChallenge Я получаю Ошибка NSURL -1012.

Наш API размещается на http://uat-exchange.vrmco.com/

Пожалуйста, помогите мне, что я пропускаю или любая вещь, что мы должны использовать для устранения этой ошибки.

Спасибо заранее.

ответ

0

Я не думаю, что это проблема TLS, если она работает в первый раз. IIRC, если вы не предоставляете настраиваемые методы обработчика TLS (возвращая ДА для защитного пространства доверия сервера в методе canAuthenticateAgainst ...), ошибка 1012 обычно означает отказ аутентификации пользователя на сервере , а не на другой способ вокруг. (Существуют другие коды ошибок для сбоев TLS-1202 в частности.)

Мое первое предположение заключалось в том, что на вашем сервере требуется некоторая аутентификация на основе файлов cookie и возвращается код ошибки HTTP 401 при истечении этого файла cookie. Если это так, вы, вероятно, должны рассматривать это как указание на необходимость повторного ввода процесса входа в систему.