Я работаю над кодом для подключения к защищенному веб-сервису на основе .NET.Я попытался подключиться с помощью созданного вручную сообщения SOAP, HTTP POST и HTTP GET.В каждой попытке я использую NSMutableURLRequest на NSURLConnection.Я реализовал didReceiveAuthenticationChallenge следующим образом ...
- (void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge
{
NSLog(@"Authentication challenge");
if ([challenge previousFailureCount] == 0)
{
NSLog(@"authentication failed");
NSURLCredential *credential ;
credential = [NSURLCredential credentialWithUser:@"username" password:@"password" persistence:NSURLCredentialPersistenceForSession];
NSLog(@"credential created");
[[challenge sender] useCredential:credential forAuthenticationChallenge:challenge];
NSLog(@"credential sent");
}
else
{
NSLog(@"Credentials are wrong!");
[[challenge sender] cancelAuthenticationChallenge:challenge];
}
}
Появляются все сообщения журнала.Примерно через 30 секунд после того, как «учетные данные отправлены», я получаю следующую ошибку.
Ошибка подключения: Ошибка Domain = NSURLErrorDomain Code = -1005 «Сетевое подключение было потеряно.»
Я нашел множество примеров здесь и в других местах по обработке проверки подлинности.Ничто из того, что я делаю, кажется необычным.Я также реализовал следующее на всякий случай, но результаты те же.
- (BOOL)connection:(NSURLConnection *)connection canAuthenticateAgainstProtectionSpace:(NSURLProtectionSpace *)protectionSpace
{
NSLog(@"canAuthenticateAgainstProtectionSpace");
//return YES to say that we have the necessary credentials to access the requested resource
return YES;
}
Имя пользователя / пароль, который я отправляю в ответ на вызов, существует.Я подтвердил, введя URL-адрес службы в браузере и введя имя пользователя / пароль в диалоговом окне аутентификации.XML возвращается при вызове сервиса через браузер.
Я уже несколько дней бьюсь об это головой об стену.Любые указатели будут с благодарностью.
Спасибо
Шон