移动连接上的NSURLResponse kCFURLErrorNotConnectedToInternet

时间:2016-03-18 08:49:00

标签: ios nsurlsession nsurlrequest

我的一个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等)在同一连接上都没有任何问题。

知道这里会发生什么吗?现在我不知道在哪个方向搜索问题。在我的测试中,无论使用何种连接,一切都可以正常工作。许多其他用户报告说,在移动连接上使用该功能也没有问题。

1 个答案:

答案 0 :(得分:0)

对于所有人可能会遇到同样的问题:解决方案非常简单。

出于某种原因(用户不知道为什么)我的应用已取消停用移动数据。这可以在Settings/Mobil Data/Use Mobile Data for:

下的iOS系统设置中完成

我也不知道如何发生这种情况。在处理此错误之前,我甚至不知道,可以根据每个应用程序禁用移动数据使用。也许这是偶然或系统的一些错误发生的?但是,在用户重新启用移动数据使用后,我的应用程序再次按预期工作。