IOS:kCFErrorDomainCFNetwork 错误 -1002。错误域=NSURLErrorDomain 代码=-1002 “不支持的 URL”

Posted

技术标签:

【中文标题】IOS:kCFErrorDomainCFNetwork 错误 -1002。错误域=NSURLErrorDomain 代码=-1002 “不支持的 URL”【英文标题】:IOS: kCFErrorDomainCFNetwork error -1002. Error Domain=NSURLErrorDomain Code=-1002 "unsupported URL" 【发布时间】:2016-09-15 12:02:09 【问题描述】:

你好,我知道以前问过这类问题,但我没有从他们那里得到任何解决方案 在我的项目中,当我将代码放在登录按钮上时,我正在登录视图中工作,但出现错误

错误:错误域=NSURLErrorDomain 代码=-1002“不支持的 URL” UserInfo=0x7fb37b62c9a0 NSLocalizedDescription=不支持的 URL, NSUnderlyingError=0x7fb37b715a20 "操作无法完成。 (kCFErrorDomainCFNetwork 错误 -1002.)"

但我使用的登录代码与我在以前的项目中使用的代码相同,并且在那里运行良好

这是我的代码:

-(IBAction)login:(id)sender

    NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
    NSURLSession *session = [NSURLSession sessionWithConfiguration:configuration delegate:self delegateQueue:nil];
    NSURL *url = [NSURL URLWithString:@"http://eyeforweb.info.bh-in-15.webhostbox.net/myconnect/api.php?token=LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0KTUc4d0RRWUpLb1pJaHZjTkFRRUJCUUFEWGdBd1d3SlVBeWo0WE9JNjI4cnJRTG9YeEpXNG1zUWI1YmtvYk1hVQpzMnY1WjFKeXJDRWdpOVhoRzZlZk4rYTR0eGlMTVdaRXdNaS9uS1cyL1NCS2pCUnBYUzVGYUdiV0VLRG1WOXkvCkYrWHhsUXVoeER0MEV3YkRBZ01CQUFFPQotLS0tLUVORCBQVUJMSUMgS0VZLS0tLS0K&method=user.getLogin"];
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url
                                                           cachePolicy:NSURLRequestUseProtocolCachePolicy
                                                       timeoutInterval:60.0];

    [request addValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
    [request addValue:@"*/*" forHTTPHeaderField:@"Accept"];
    [request setHTTPMethod:@"POST"];
    NSString *mapData = [NSString stringWithFormat:@"login=abc@gmail.com&password=123456"];//,username.text, password.text];
    NSData *postData = [mapData dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
    [request setHTTPBody:postData];
    NSLog(@"map data is = %@",mapData);
    NSURLSessionDataTask * postDataTask = [session dataTaskWithRequest:request completionHandler:^(NSData * data, NSURLResponse* response, NSError * error) 

        if(error == nil)
        
            NSDictionary *json = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];
            NSString *text = [[NSString alloc] initWithData: data encoding: NSUTF8StringEncoding];
            NSLog(@"Data = %@",text);
            NSDictionary *jsonDic = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];
            NSLog(@"jsondic= %@",jsonDic);

            NSDictionary *userDataDic = [jsonDic objectForKey:@"data"];
            NSLog(@"Dict is %@",userDataDic);

请帮我解决它我已经看到类似类型的问题,但没有从这个问题中克服 任何帮助表示赞赏

【问题讨论】:

阿比你的网址不正确 但它在 Advance rest 客户端中给出了正确的响应 当我运行你的代码时它给了我 nil 另外,您的用户名错误,因为您的登录名中有 2 个用户 id(login=abc@gmail.com@eyeforweb.com)。这怎么可能? 它给出的响应如下: "api": "total": 1 "current_page": "" - "output": [2] 0: true 1: "user_id": " 1" "email": "@.com" "user_name": "admin" 【参考方案1】:

我试过你的代码。除了你的网址之外,其他代码行都是正确的。如果你传递了正确的网址,它就可以完美地工作。

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:@"http://eyeforweb.info.bh-in-15.webhostbox.net/myconnect/api.php"]]; //pass your url here
 [request setHTTPMethod:@"POST"];
 //Passing The String to server
 NSString *strUserId = @"pradeep.kumar@eyeforweb.com";
 NSString *strPassword = @"admin123";


 NSString *userUpdate =[NSString stringWithFormat:@"login=%@&password=%@",strUserId,strPassword, nil];

 //Check The Value what we passed
 NSLog(@"the data Details is %@", userUpdate);


 //Convert the String to Data
 NSData *data1 = [userUpdate dataUsingEncoding:NSUTF8StringEncoding];
 NSLog(@"The postData is - %@",data1);


 //Apply the data to the body
 [request setHTTPBody:data1];

 NSURLSession *session = [NSURLSession sharedSession];
 NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) 
 NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *)response;
 if(httpResponse.statusCode == 200)
 
 NSError *parseError = nil;
 NSDictionary *responseDictionary = [NSJSONSerialization JSONObjectWithData:data options:0 error:&parseError];
 NSLog(@"The response is - %@",responseDictionary);
 NSInteger success = [[responseDictionary objectForKey:@"success"] integerValue];
 if(success == 1)
 
 NSLog(@"Login SUCCESS");
 
 else
 
 NSLog(@"Login FAILURE");
 
 
 else
 
 NSLog(@"Error");
 
 ];
 [dataTask resume];

【讨论】:

以上是关于IOS:kCFErrorDomainCFNetwork 错误 -1002。错误域=NSURLErrorDomain 代码=-1002 “不支持的 URL”的主要内容,如果未能解决你的问题,请参考以下文章

最佳实践。通过支持 iOS 5、iOS 6 和 iOS 7 UI 使 iOS 应用程序通用

iOS 应用程序 - 如何仅为 iOS 8 用户添加 iOS 8 功能,同时仍支持所有 iOS 7 用户

ios手游平台 ios手游推荐 ios手游排行 ios手游模拟器 ios手游盒子

李洪强iOS开发之iOS学习方法收集

iOS开发 适配iOS10

ios兼容 iphoneX ios10 ios11