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是否可用,判断网址是否正确的主要内容,如果未能解决你的问题,请参考以下文章
怎么用JS获取当前URL完整地址,然后判断这地址是不是包含有.php或.asp的字符,如果有,则跳转到另一个网址