NSURL错误代码1022
我有一个RSS阅读器应用程序,它有一个parsing器。 它运行良好,直到iOS 9testing版。 每当我尝试加载数据,我得到错误代码1022.这是我build立连接的代码:
- (void)parseRssFeed:(NSString *)url withDelegate:(id)aDelegate { [self setDelegate:aDelegate]; responseData = [NSMutableData data]; NSURL *baseURL = [NSURL URLWithString:url]; NSURLRequest *request = [NSURLRequest requestWithURL:baseURL]; [[NSURLConnection alloc] initWithRequest:request delegate:self]; }
和error handling程序:
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error { NSString * errorString = [NSString stringWithFormat:@"Unable to download XML data (Error code %i )", [error code]]; UIAlertView * errorAlert = [[UIAlertView alloc] initWithTitle:@"Error loading content" message:errorString delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]; [errorAlert show]; }
我不确定iOS 8和9之间有什么变化,但由于某种原因,该应用程序不再起作用。 任何帮助将不胜感激!
所以,这个问题与ATS(应用程序传输安全)有关,它是iOS 9中的一项新function,在连接到URL之前检查URL的真实性。 由于我不担心我连接的网站的安全性,我完全禁用了ATS。 这可以通过添加以下代码到应用程序的info.plist文件来完成:
<key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key> <true/> </dict>
@implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. NSString *stringUrl = [NSString stringWithFormat:@"http://rest-service.guides.spring.io/greeting"]; NSString *webStringURL=[stringUrl stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; NSURL *url = [NSURL URLWithString:webStringURL]; NSURLRequest *request = [NSURLRequest requestWithURL:url]; [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response,NSData *data, NSError *connectionError) { if (data.length > 0 && connectionError == nil) { NSDictionary *dicYourResponse = [NSJSONSerialization JSONObjectWithData:data options:0 error:NULL]; NSLog(@"ID: %@", [dicYourResponse objectForKey:@"id"]); NSLog(@"Content:%@", [dicYourResponse objectForKey:@"content"]); } }]; }
我已经做到了这一点击中url,其成功,但没有答案在控制台。 我在info.plist中添加了应用程序传输安全和exception域也不适合我。