Аутентификация HTTP в iPhone
Я надеюсь, что кто-то может помочь мне с вопросом, связанным с аутентификацией в Xcode
В основном у меня есть сервер MS Sharepoint, который возвращает XML.
Im Имея этот кусок кода для аутентификации, но он недоступен.
NSString *urlString = @"http://example.com/";
NSMutableURLRequest *request= [[[NSMutableURLRequest alloc] init] autorelease];
[request setURL:[NSURL URLWithString:urlString]];
[request setHTTPMethod:@"POST"];
NSString *str1 = [NSString stringWithString:@"username:password"];
NSData *myDate = [str1 dataUsingEncoding:NSUTF8StringEncoding];
NSString *str2 = [Base64 encode:myDate];
NSLog(@"%@ str1 %@", str2,str1);
[request addValue:[NSString stringWithFormat:@"Basic %@",str2] forHTTPHeaderField:@"Authorization"];
NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
NSString *str = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];
NSLog(@"%@", str);
Даже я передаю правильные учетные данные, но сервер не принимает.
Он возвращает
401 - Неавторизованный: доступ запрещен из-за недопустимых учетных данных.
Может ли any1 помочь?
Ответы
Ответ 1
Использовать метод делегата NSURLConnection
-connection:didReceiveAuthenticationChallenge:
, чтобы определить, когда требуется проверка подлинности. Короче говоря, вы будете использовать NSURLCredential экземпляры для прикрепления аутентификации к запросу.
Документы имеют хороший обзор и пример кода:
Ответ на вызов аутентификации
Ответ 2
Рассмотрим использование открытого класса ASIHTTPRequest
, поскольку он делает аутентифицированным запросов довольно просто.