我试图在iOS 8 SDK上使用 XCode 6(Beta7 2)中的
NSURLConnection
发起一个简单的 GET 请求,但是它失败了并提示 "Code 1005, the network connection was lost"。当我尝试获取http://www.google.com或网页中的几个其他示例页面时,调用失败,但如果我向本地主机上的简单 HTTP 服务器发出请求(python -m SimpleHTTPServer
),则成功。我还尝试使用AFNetworking
库(版本为2.4.1)- 使用 NSURLConnection 失败的 URL 在该库中也会失败。
这是我的代码 -
NSString * url = @"http://0.0.0.0:8000";
// NSString * url = @"http://www.google.com";
NSLog(@"URL : %@", url);
// Mutable is probably not required, but just in case it REALLY WANTS me to set HTTP method
NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:url]];
[theRequest setHTTPMethod:@"GET"];
NSURLResponse *urlResponse = nil;
NSError *error = nil;
NSData * data = [NSURLConnection sendSynchronousRequest:theRequest
returningResponse:&urlResponse
error:&error];
if (error == nil) {
NSString *response = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
NSLog(response);
} else {
NSString *response = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
NSLog(@"%@", [error userInfo]);
}
日志:
2014-09-11 17:34:23.950 SearchExample[5092:2074687] URL : http://www.google.com
2014-09-11 17:34:24.023 SearchExample[5092:2074687] {
NSErrorFailingURLKey = "http://www.google.com";
NSErrorFailingURLStringKey = "http://www.google.com";
NSLocalizedDescription = "The network connection was lost.";
NSUnderlyingError = "Error Domain=kCFErrorDomainCFNetwork Code=-1005 \"The network connection was lost.\" UserInfo=0x7fc8515640a0 {NSErrorFailingURLStringKey=http://www.google.com/, NSErrorFailingURLKey=http://www.google.com/, _kCFStreamErrorCodeKey=57, _kCFStreamErrorDomainKey=1, NSLocalizedDescription=The network connection was lost.}";
"_kCFStreamErrorCodeKey" = 57;
"_kCFStreamErrorDomainKey" = 1;
}
2014-09-11 17:34:24.023 SearchExample[5092:2074687] URLResponse: (null)