iOS 5 - подключиться к HTTPS-серверу - PullRequest
0 голосов
/ 17 декабря 2011

Я пытаюсь преодолеть изменения, внесенные в iOS 5 в отношении NSURLConnection.

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

Есть ли место, где я могу получить рабочий пример того, как мне написать код для использования кода, совместимого с iOS5?Я проверил документацию и заголовки, но ни один источник не показывает, как создать такое соединение, на примере, который показывает, куда в каком файле идет код (предположим, что я просто начинаю со стандартного шаблона из Xcode, например,один шаблон представления или шаблон панели вкладок).

Буду очень признателен за любые предложения;Поскольку мое приложение будет работать на iOS 5, я бы хотел использовать новую процедуру, но отсутствие документации и учебных пособий усложняет мою задачу, чем я думал.

Ответы [ 2 ]

1 голос
/ 19 декабря 2011

Я использую это:

- (void)connection:(NSURLConnection *)connection willSendRequestForAuthenticationChallenge:
       (NSURLAuthenticationChallenge *)challenge {

if ([challenge previousFailureCount] <= maxRetryCount ) {
    NSURLCredential *newCredential =
    [NSURLCredential
     credentialWithUser: userName
     password:password
     persistence:NSURLCredentialPersistenceForSession];

    [[challenge sender]
     useCredential:newCredential
     forAuthenticationChallenge:challenge];

   }
   else
   {
     NSLog(@"Failure count %d",[challenge previousFailureCount]);
   }
}

Это прекрасно работает для меня.Тем не менее, похоже, что самозаверяющие сертификаты тоже принимаются.Мне, вероятно, нужно опубликовать отдельный вопрос об этом.

1 голос
/ 17 декабря 2011

Вы должны использовать синглтон NSURLCredentialStorage.Вам необходимо добавить учетные данные в хранилище перед использованием NSURLConnection, вызвав один из методов NSURLCredentialStorage, например:

- (void)setCredential:(NSURLCredential *)credential forProtectionSpace:(NSURLProtectionSpace *)protectionSpace
...