NSMutableURLRequest中的基本授权无效

时间:2011-11-29 13:13:47

标签: objective-c

我正在尝试向我的请求标头添加基本授权。下面的代码编译,我没有得到任何运行时错误。但是,在服务器端,我没有看到"授权"在标题中。

我能够实现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 个答案:

答案 0 :(得分:3)

didReceiveAuthenticationChallenge是它在iOS中运行的方式,也是最简单的方法。每次请求都会提交(带挑战)。猜猜那不是你想听到的=)

我猜你已经尝试过使用不同的教程了。我之前用过这个来验证:

Basic access Auth, iOS