NSURL其实就是我们在浏览器上看到的网站地址,这不就是一个字符串么,为什么还要在写一个NSURL呢,主要是因为网站地址的字符串都比较复杂,包括很多请求参数,这样在请求过程中需要解析出来每个部门,所以封装一个NSURL,操作很方便:

  1. NSURL *url = [NSURL URLWithString:@"http://www.baidu.com/s?tn=baiduhome_pg&bs=NSRUL&f=8&rsv_bp=1&rsv_spt=1&wd=NSurl&inputT=2709"];  

  2.       

  3.     NSLog(@"Scheme: %@", [url scheme]);  

  4.       

  5.     NSLog(@"Host: %@", [url host]);  

  6.       

  7.     NSLog(@"Port: %@", [url port]);  

  8.       

  9.     NSLog(@"Path: %@", [url path]);  

  10.       

  11.     NSLog(@"Relative path: %@", [url relativePath]);  

  12.       

  13.     NSLog(@"Path components as array: %@", [url pathComponents]);  

  14.       

  15.     NSLog(@"Parameter string: %@", [url parameterString]);  

  16.       

  17.     NSLog(@"Query: %@", [url query]);  

  18.       

  19.     NSLog(@"Fragment: %@", [url fragment]);  

  20.       

  21.     NSLog(@"User: %@", [url user]);  

  22.       

  23.     NSLog(@"Password: %@", [url password]);  


结果:


  1. 2012-08-29 15:52:23.781 NSurl[3560:f803] Scheme: http  

  2. 2012-08-29 15:52:32.793 NSurl[3560:f803] Host: www.baidu.com  

  3. 2012-08-29 15:52:39.102 NSurl[3560:f803] Port: (null)  

  4. 2012-08-29 15:52:42.590 NSurl[3560:f803] Path: /s  

  5. 2012-08-29 15:52:52.516 NSurl[3560:f803] Relative path: /s  

  6. 2012-08-29 15:53:05.576 NSurl[3560:f803] Path components as array: (  

  7.     "/",  

  8.     s  

  9. )  

  10. 2012-08-29 15:53:32.861 NSurl[3560:f803] Parameter string: (null)  

  11. 2012-08-29 15:53:37.528 NSurl[3560:f803] Query: tn=baiduhome_pg&bs=NSRUL&f=8&rsv_bp=1&rsv_spt=1&wd=NSurl&inputT=2709  

  12. 2012-08-29 15:53:52.942 NSurl[3560:f803] Fragment: (null)  

  13. 2012-08-29 15:53:54.539 NSurl[3560:f803] User: (null)  

  14. 2012-08-29 15:53:57.808 NSurl[3560:f803] Password: (null)