1.URL
URL是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。
URL可能包含远程服务器上的资源的位置,本地磁盘上的文件的路径,甚至任意一段编码的数据。
2.NSURL
NSURL其实就是我们在浏览器上看到的网站地址,这不就是一个字符串么,为什么还要在写一个NSURL呢?
主要是因为网站地址的字符串都比较复杂,包括很多请求参数,这样在请求过程中需要解析出来每个部门,所以封装一个NSURL,操作很方便。
3.用途
(1)可以使用URL对象构造URL和访问他们的部分。例如,[myURL scheme]
(2)对于代表本地文件的url,您也可以直接操作这些文件的属性。例如,修改文件的最后修改日期。
(3)可以使用url进行网络通信。例如,您可以使用NSURLSession NSURLConnection,和NSURLDownload类来访问远程资源的内容。
(4)可以使用url读写本地文件。例如,你可以通过一个本地文件的URL,调用stringWithContentsOfURL方法,得到NSString格式的文件内容。
(5)可以使用url进行通讯。例如:可以用openURL:方法来拨打电话。
(6)可以使用url添加标签。
4.一个NSURL结构
(1)可以将RUL看成由两部分组成,baseURL(可以为nil)和baseURL之后部分
苹果官方的例子是
NSURL *baseURL = [NSURL URLWithString:@"file:///path/to/web_root/"];
NSURL *url = [NSURL URLWithString:@"folder/file.html" relativeToURL:baseURL];
NSURL *absURL = [url absoluteURL];
NSLog(@"absURL = %@", absURL);
(2)也可以将url看成[myURL scheme], ':', [myURL resourceSpecifier]
一,模式/协议(scheme):它告诉浏览器如何处理将要打开的文件。最常用的模式是超文本传输协议(Hypertext Transfer Protocol,缩写为HTTP),这个协议可以用来访问网络。
其他协议如下:
https——用
安全套接字层传送的超文本传输协议,
ftp——
文件传输协议,
file——当地电脑或网上分享的文件,
telnet——
Telnet协议
二,
文件所在的服务器的名称或IP地址,后面是到达这个文件的路径和文件本身的名称。服务器的名称或IP地址后面有时还跟一个冒号和一个
端口号
。它也可以包含接触服务器必须的用户名称和密码。
路径
部分包含等级结构的路径定义,一般来说不同部分之间以斜线(/)分隔。询问部分一般用来传送对服务器上的数据库进行动态询问时所需要的参数。
有时候,URL以斜杠“/”结尾,而没有给出文件名,在这种情况下,URL引用路径中最后一个目录中的默认文件(通常对应于主页),这个文件常常被称为 index.html 或 default.htm。(百度百科)
示例:
NSURL *url = [NSURL URLWithString: @"http://www.wft.cn/query/regism.html?method=login"];
//任何url由两部分组成 [myURL scheme], ':', [myURL resourceSpecifier]
NSLog(@"Scheme: %@", [url scheme]);
NSLog(@"ResourceSpecifier: %@", [url resourceSpecifier]);
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]);
NSLog(@"User: %@", [url user]);
NSLog(@"Password: %@", [url password]);
结果:
2015-01-27 16:10:40.700 MyApps[3235:161774] Scheme: http
2015-01-27 16:10:40.701 MyApps[3235:161774] ResourceSpecifier: //www.wft.cn/query/regism.html?method=login
2015-01-27 16:10:40.701 MyApps[3235:161774] Host: www.wft.cn
2015-01-27 16:10:40.701 MyApps[3235:161774] Port: (null)
2015-01-27 16:10:40.701 MyApps[3235:161774] Path: /query/regism.html
2015-01-27 16:10:40.701 MyApps[3235:161774] Relative path: /query/regism.html
2015-01-27 16:10:40.701 MyApps[3235:161774] Path components as array: (
"/",
query,
"regism.html"
)
2015-01-27 16:10:40.702 MyApps[3235:161774] Parameter string: (null)
2015-01-27 16:10:40.702 MyApps[3235:161774] Query: method=login
2015-01-27 16:10:40.702 MyApps[3235:161774] Fragment: (null)
2015-01-27 16:10:40.702 MyApps[3235:161774] User: (null)
2015-01-27 16:10:40.702 MyApps[3235:161774] Password: (null)
5.创建一个NSURL对象
(1)这种初始化方法方便多个网址的统一管理
- (instancetype)initWithScheme:(NSString *)scheme
host:(NSString *)host
path:(NSString *)path
(2)将字符传转化为网址
+ (instancetype)URLWithString:(NSString *)URLString