NSURL

在由NSString生成NSURL对象时,有可能会出现NSString中包含百分号各类括号冒号等对于url来说的非法字符如果直接进行转换的话将得到nil。在对于复杂url进行转换前,可以先试试对待转换的NSString发送stringByAddingPercentEscapesUsingEncoding: 将其转换为合法的url字符串(其实目的就是保证非法字符用UTF8编码..) 比如这样:

NSString *fixedStr = [reqStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
可以按照RFC 1808的定义去自己分析;
更便捷的是SDK中各种分析的方法
NSURL *url = [NSURL URLWithString: @"http://i.cnblogs.com/EditPosts.aspx?opt=1"]; NSLog(@“Scheme: %@”, [url scheme]); NSLog(@“Host: %@”, [url host]); NSLog(@“Port: %@”, [url port]); NSLog(@“Path: %@”, [url path]); NSLog(@“Relative path: %@”, [url relativePath]); NSLog(@“Path components as array: %@”, [url pathComponents]); NSLog(@“Parameter string: %@”, [url parameterString]); NSLog(@“Query: %@”, [url query]); NSLog(@“Fragment: %@”, [url fragment]);

posted on 2016-05-30 14:44  码上翻身  阅读(115)  评论(0编辑  收藏  举报

导航