我正在尝试向我的请求标头添加基本授权。下面的代码编译,我没有得到任何运行时错误。但是,在服务器端,我没有看到"授权"在标题中。
我能够实现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";
}
答案 0 :(得分:3)
didReceiveAuthenticationChallenge是它在iOS中运行的方式,也是最简单的方法。每次请求都会提交(带挑战)。猜猜那不是你想听到的=)
我猜你已经尝试过使用不同的教程了。我之前用过这个来验证: