我的一个iOS应用使用NSURLSession
连接到网络服务并查询一些数据。我刚刚添加并发布了此功能,在大多数情况下,它似乎没有任何问题。 然而,一手满满的客户报告称,当设备使用移动网络连接到互联网时,他们无法使用此功能。使用WiFi连接上的功能是没有问题的另一方面手。
代码没什么特别,只是使用NSURLReqeust
NSURLSession
NSURLSessionConfiguration *sessionConfig = [NSURLSessionConfiguration defaultSessionConfiguration];
NSURLSession *session = [NSURLSession sessionWithConfiguration:sessionConfig delegate:self delegateQueue:[NSOperationQueue mainQueue]];
NSMutableURLRequest* request = [[NSMutableURLRequest alloc] initWithURL:myServiceURL];
[request addValue:@"application/json" forHTTPHeaderField:@"Accept"];
[request setHTTPMethod:@"GET"];
[[session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
if (error != nil) {
// Log error...
} else {
// Handle response...
}
}] resume];
当用户在移动连接上运行该功能时,请求会失败,错误代码为-1009
kCFURLErrorNotConnectedToInternet
。好的,所以没有互联网连接。但是用户报告称,所有其他服务/应用程序(如电子邮件,Safari,WhatsApp等)在同一连接上都没有任何问题。
知道这里会发生什么吗?现在我不知道在哪个方向搜索问题。在我的测试中,无论使用何种连接,一切都可以正常工作。许多其他用户报告说,在移动连接上使用该功能也没有问题。
答案 0 :(得分:0)
对于所有人可能会遇到同样的问题:解决方案非常简单。
出于某种原因(用户不知道为什么)我的应用已取消停用移动数据。这可以在Settings/Mobil Data/Use Mobile Data for:
我也不知道如何发生这种情况。在处理此错误之前,我甚至不知道,可以根据每个应用程序禁用移动数据使用。也许这是偶然或系统的一些错误发生的?但是,在用户重新启用移动数据使用后,我的应用程序再次按预期工作。