OC学习----NSURL

在计算机网络中常用的协议有哪些?

协议 , 端口 , 基础协议 , 用途

HTTP/HTTPS , 80 , TCP , 国际互联网的支持协议

file, ,TCP,本地文件协议

FTP,21,TCP,文件传输协议

SHH,22,TCP,用于加密和远程登录

SMTP,25,TCP,简单邮件传输协议

talnet,23,TCP,用于交互式远程登录会话

URL

URL用于标识Internet上资源位置,它指定用于访问服务器的协议,服务器名称以及文件在服务器上的位置,如 http://iosseventeenclass.sinaapp.com/myapp/index.php

    语法:
    protocol://username@hostname:port/path/filename?query#fragment

1.protocol代表互联网协议,可以是HTTP,FTP,file等协议.

2.username代表服务器用户名,可选参数

3.hostame代表服务器名称,可以是名称,也可以是节点节点地址

4.port代表端口号,可选参数,如果有http,会是默认80端口号,如果是FTP协议默认是21端口号

5.path/filename代表文件在服务器的路径

6.query#fragment代表查询条件,通常用于向服务器提供附加参数,一般只用于http,URL,这里的查询条件是向服务器提供的参数.

note:
    在URL中不可出现中文,空格,百分号等一些特殊字符.

在OC中使用NSURL类来定义URL

     //将url字符串转换成NSURL类
    NSURL *url = [NSURL URLWithString:@"http://iosseventeenclass.sinaapp.com/index.php?name=vincent&age=25"];
    //用NSData接收从服务器端传过来的数据
    NSData *data = [NSData dataWithContentsOfURL:url];
    NSString *string = [[NSString alloc] initWithData:data encoding:4];
    NSLog(@"string = %@",string);

有时候我们传入给服务器的参数出现中文,但是URL不支持中文等一些特殊字符,那么此时需要进行url编码

    //将url字符串进行编码
    NSString *urlString = @"http://iosseventeenclass.sinaapp.com/index.php?name=颜树新&age=25";
    urlString = [urlString stringByAddingPercentEscapesUsingEncoding:4];


    //将url字符串转换成NSURL类
    NSURL *url = [NSURL URLWithString:urlString];
    //用NSData接收从服务器端传过来的数据
    NSData *data = [NSData dataWithContentsOfURL:url];
    NSString *string = [[NSString alloc] initWithData:data encoding:4];
    NSLog(@"string = %@",string);

在OC中将URL字符串转换成NSURL时,其协议,主机域名,路径文件,查询条件都被封装成NSURL类中的属性,如下所示:

    NSLog(@"url absoluteString = %@",url.absoluteString);
    NSLog(@"url relativeString = %@",url.relativeString);
    NSLog(@"url baseString = %@",url.baseURL);
    NSLog(@"url scheme = %@",url.scheme);
    NSLog(@"url resourceSpecifier = %@",url.resourceSpecifier);
    NSLog(@"url host = %@",url.host);
    NSLog(@"url path = %@",url.path);
    NSLog(@"url port = %@",url.port);
    NSLog(@"url user = %@",url.user);
    NSLog(@"url query = %@",url.query);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值