Базовая авторизация в NSMutableURLRequest не работает - PullRequest
3 голосов
/ 29 ноября 2011

Я пытаюсь добавить базовую авторизацию в заголовок моего запроса. Код ниже компилируется, и я не получаю никаких ошибок во время выполнения. Однако на стороне сервера я не вижу «Авторизация» в шапке вообще.

Мне удалось реализовать метод didReceiveAuthenticationChallenge, и это работает, но я не понимаю, почему я должен сделать это таким образом. Я просто хочу всегда добавлять базовую аутентификацию к каждому запросу.

Меня не интересует использование ASIHTTPRequest.

Спасибо за помощь!

Это мой код ниже:

NSURL *url = [[NSURL alloc] initWithString:@"http://localhost:8000/MyWebService"];
self.userName = @"myusername";
self.password = @"mypassword";
NSMutableString *credentials = [[NSMutableString alloc] initWithFormat:@"%@:%@", userName, password];
NSString *encodedCredentials = [[credentials dataUsingEncoding:NSUTF8StringEncoding] base64EncodedString];
NSString *authHeader =  [NSString stringWithFormat:@"Basic %@", encodedCredentials];
NSMutableURLRequest* req = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:5];
[req addValue:authHeader forHTTPHeaderField:@"Authorization"];  
self.urlConnection = [[NSURLConnection alloc] initWithRequest:req delegate:self startImmediately:YES];
if (self.urlConnection) {
    self.receivedData = [NSMutableData data];        
}
else  {
    errorLabel.text = @"Error connecting to the server";
}

1 Ответ

3 голосов
/ 24 февраля 2012

didReceiveAuthenticationChallenge - это способ, которым он работает в iOS, и самый простой способ сделать это. Он будет представлен с каждым запросом (с заявкой). Думаю, это не то, что вы хотите услышать =)

Полагаю, вы пытались использовать разные учебники. Я использовал этот для аутентификации раньше:

Базовый доступ Auth, iOS

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...