iOS-判断URL是否可用,判断网址是否正确
来源:互联网 发布:淘宝9.9包邮网 编辑:程序博客网 时间:2024/05/20 18:45
思路:传入一个请求的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];}
0 0
- iOS-判断URL是否可用,判断网址是否正确
- iOS 判断网址、链接地址、url地址是否可用
- ios 判断网络是否可用
- iOS判断身份证号码是否正确
- iOS判断身份证号码是否正确
- iOS-判断输入的网址是http还是https,判断网址是否可用
- iOS--判断网络是否可用-(本地判断)
- IOS判断是否是URL
- 关于判断url是否为网址
- 判断文件路径、url是否可用
- Js检测判断URL输入是否正确
- javascript判断输入的url是否正确
- PHP 判断网址是否正确 / 网页是否存在
- iOS判断设备的相机是否可用
- ios 判断网络是否可用工具类
- IOS--判断当前网络是否可用
- iOS判断CLLocationCoordinate2D对象是否可用
- ios 定位是否可用的判断
- 生产者消费者:等待唤醒机制(最终版代码)
- 如何将dockerhub与github关联
- 操作系统整理
- 心急的C小加
- 为什么size_t重要?
- iOS-判断URL是否可用,判断网址是否正确
- 想玩好嵌入式,你需要关注以下几个方面
- Android API 23中废弃了HttpClient的解决办法
- js 控制 checkbox不选中
- ViewPagerIndictor框架的使用(第一部分)
- HDU 1232 畅通工程
- javaScript学习笔记——数组末尾元素的增加和删除
- HDU 3836 Equivalent Sets
- Android逆向小试牛刀(破解阅读软件广告)