url

274 阅读1分钟
NSString *urlStr = @"https://www.baidu.com/desk/wwj/index.html?age=1#12";
NSString *urlStr1 = [urlStr stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *urlStr2 = [urlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSString *urlStr3 = CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (CFStringRef)urlStr, (CFStringRef)@"!$&'()*+,-./:;=?@_~%#[]", NULL, kCFStringEncodingUTF8));


NSURL *url = [NSURL URLWithString:urlStr1];//https://www.baidu.com/desk/wwj/index.html?age=1%2312
NSURL *url2 = [NSURL URLWithString:urlStr2];//https://www.baidu.com/desk/wwj/index.html?age=1%2312
NSURL *url3 = [NSURL URLWithString:urlStr2];//https://www.baidu.com/desk/wwj/index.html?age=1#12

NSString *a = url.absoluteString;//https://www.baidu.com/desk/wwj/index.html?age=1
NSString *a1 = url.relativeString;//https://www.baidu.com/desk/wwj/index.html?age=1
NSURL *a2 = url.baseURL;//nil
NSURL *a3 = url.absoluteURL;//nil
NSString *a4 = url.scheme;//协议:protocol: https
NSString *a5 = url.host;//域名:www.baidu.com
NSNumber *a6 = url.port;//nil
NSString *a7 = url.user;//nil
NSString *a8 = url.password;//nil
NSString *a9 = url.path;// 目录: /desk/wwj/index.html

NSString *a10 = url.fragment;//nil
NSString *a11 = url.parameterString;//nil
NSString *a12 = url.query;//参数:age=1
NSString *a13 = url.relativePath;// /desk/wwj/index.html
BOOL hasDirectoryPath = url.hasDirectoryPath;// NO

NSCharacterSet *set = [NSCharacterSet characterSetWithCharactersInString:@"#"];
//invertedSet 去反字符  set.invertedSet 是指除了#字符

NSString *urlStr4 = [urlStr stringByAddingPercentEncodingWithAllowedCharacters:set.invertedSet];

协议: http https ftp ,http默认端口号80;https默认端口号443;ftp默认端口号:21
一台服务器上的端口号范围:0~65535之间