我正在使用AFNetworking 2.0的可访问性功能,如其示例代码中所述 - 我在本地LAN中有一个测试服务器,我的iOS App在测试期间与之通信。当我在启用了WLAN的模拟器中运行应用程序时,AFNetworking最初报告服务器/ URL是可访问的,但随后将其更改回不可访问(即使服务器在那里,可访问且WLAN工作正常)。这意味着它会关闭操作队列,以便应用程序不会与服务器通信,即使它肯定可以。
为什么AFNetworking错误地将本地服务器/ URL报告为无法访问的任何建议?
这是我的代码:
AFHTTPRequestOperationManager *mgr = [[AFHTTPRequestOperationManager alloc] initWithBaseURL:[NSURL URLWithString:@"http://192.168.188.20:3000/"]];
NSOperationQueue *operationQueue = self.httpManager.operationQueue;
[mgr.reachabilityManager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status)
{
NSLog(@"Reachability for %@ has changed to %@", @"http://192.168.188.20:3000/",AFStringFromNetworkReachabilityStatus(status));
switch (status) {
case AFNetworkReachabilityStatusReachableViaWWAN:
case AFNetworkReachabilityStatusReachableViaWiFi:
NSLog(@"re-enabling operation queue");
[operationQueue setSuspended:NO];
break;
case AFNetworkReachabilityStatusNotReachable:
default:
NSLog(@"disabling operation queue");
[operationQueue setSuspended:YES];
break;
}
}];
当我运行应用程序时,我得到以下日志输出 - WLAN工作正常,本地服务器正在以给定的IP和端口号运行:
Jan 31 13:21:04 MyApp[10671] <Warning>: Reachability for http://192.168.188.20:3000/ has changed to Reachable via WiFi
Jan 31 13:21:04 MyApp[10671] <Warning>: re-enabling operation queue
Jan 31 13:21:04 MyApp[10671] <Warning>: Reachability for http://192.168.188.20:3000/ has changed to Not Reachable
Jan 31 13:21:04 MyApp[10671] <Warning>: disabling operation queue`
当我使用实时服务器(即本地LAN之外)尝试时,会发生同样的事情。然而,它并不总是发生。
还有其他人经历过这个吗?在最初被正确报告为正常后,为什么可达性被错误地更改回Not Notachable的任何建议?