iOS-判断URL是否可用,判断网址是否正确

Posted 极客学伟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS-判断URL是否可用,判断网址是否正确相关的知识,希望对你有一定的参考价值。

思路:传入一个请求的URL,进行网络请求,如果返回失败信息则说明此URL不可用
1.首先进行第一步判断传入的字符串是否符合HTTP路径的语法规则,即”HTTPS://” 或 “HTTP://” ,从封装的一个函数,传入即可判断

- (NSURL *)smartURLForString:(NSString *)str

    NSURL *     result;
    NSString *  trimmedStr;
    NSRange     schemeMarkerRange;
    NSString *  scheme;

    assert(str != nil);

    result = nil;

    trimmedStr = [str stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
    if ( (trimmedStr != nil) && (trimmedStr.length != 0) ) 
        schemeMarkerRange = [trimmedStr rangeOfString:@"://"];

        if (schemeMarkerRange.location == NSNotFound) 
            result = [NSURL URLWithString:[NSString stringWithFormat:@"http://%@", trimmedStr]];
         else 
            scheme = [trimmedStr substringWithRange:NSMakeRange(0, schemeMarkerRange.location)];
            assert(scheme != nil);

            if ( ([scheme compare:@"http"  options:NSCaseInsensitiveSearch] == NSOrderedSame)
                || ([scheme compare:@"https" options:NSCaseInsensitiveSearch] == NSOrderedSame) ) 
                result = [NSURL URLWithString:trimmedStr];
             else 
                // It looks like this is some unsupported URL scheme.
            
        
    

    return result;

第二步,判断此路径是否能够请求成功,直接进行HTTP请求,观察返回结果->

//判断
-(void) validateUrl: (NSURL *) candidate 
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:candidate];
    [request setHTTPMethod:@"HEAD"];
    NSURLSession *session = [NSURLSession sessionWithConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];
    NSURLSessionDataTask *task = [session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) 
        NSLog(@"error %@",error);
        if (error) 
            NSLog(@"不可用");
        else
            NSLog(@"可用");
        
    ];
    [task resume];

以上是关于iOS-判断URL是否可用,判断网址是否正确的主要内容,如果未能解决你的问题,请参考以下文章

浏览器判断ios是不是连接wifi

怎么用JS获取当前URL完整地址,然后判断这地址是不是包含有.php或.asp的字符,如果有,则跳转到另一个网址

ios判断手机号是否可用

Xamarin.Forms 中iOS通过URL Scheme判断应用是否安装

iOS之判断手机号码格式是否正确

iOS 判断邮箱格式是否正确的代码