0

是否可以使用sendAsynchronousRequest知道所请求的NSURLConnectionurl 将具有重定向并且所有请求也必须使用基本身份验证?

我收到以下错误:错误域 = NSURLErrorDomain 代码 = -1012“操作无法完成。(NSURLErrorDomain 错误 -1012。)

我确实使用 编写了一些代码NSURLConnectionDelegate并修改了重定向请求以在标头中添加基本身份验证并且有效。

所以我猜这与第二个请求没有设置身份验证有关。与委托相同,如果我没有在重定向请求上设置基本身份验证,则由于HTTP 401未经授权而失败

4

1 回答 1

0

我可能相信我目前正在这样做,这是我的代码,诀窍是使用“基本 base64encodedmethod(用户名:密码)”设置“授权”的标题

//SETUP URL
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"https://YOURURLHERE"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url
                                                       cachePolicy:NSURLRequestReloadIgnoringCacheData
                                                   timeoutInterval:90.0];

//Get the username & password - then encode the values with Base64 (i googled for a library)
 NSString *userAndPassword = [NSString stringWithFormat:@"%@:%@",userName,password];
    NSString *encodedString = [userAndPassword base64EncodedString];

//Set the Authorization header which will now let your service calls pass basic authentication
    [request addValue:[NSString stringWithFormat:@"Basic %@",encodedString] forHTTPHeaderField:@"Authorization"];

//Setup a queue and call the async request - remember to do items in your block on the 
//main thread if it's for things like showing/hiding items as other threads will not run that code when you're expecting it

NSOperationQueue *queue = [[NSOperationQueue alloc] init];
[NSURLConnection sendAsynchronousRequest:request queue:queue completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
//your code block here 
}];

我相信这回答了你的问题,现在我只需要找出如何删除该身份验证,以便在我为安全的合法网站构建它时注销用户。任何帮助将不胜感激

于 2013-04-06T17:25:34.990 回答