iOS-判斷URL是否可用,判斷網址是否正確

來源:互聯網
上載者:User

標籤:

思路:傳入一個請求的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是否可用,判斷網址是否正確

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.