有时你可能有下面这个需求:webview捕获一个连接,链接的”?“后面带有几个我们可用的参数,这时我们就可以通过原生提供的方法来解析url。
例如:
NSURL *url = [NSURL URLWithString: @"http://www.onevcat.com/2011/11/debug/param?p=307#more-307"]; 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]);
另外,在由NString生成NSURL对象的时候,有可能出现NSString中包含百分号各类括号冒号等对于URL来说的非法字符串如果直接进行转换的话将得到nil。在对于复杂url进行转换前,可以先将其转换为合法的url字符串(其实目的就是保证非法字符用UTF8编码..) 比如这样:
stringByAddingPercentEscapesUsingEncoding:
NSString *fixedStr = [reqStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];