网络请求

NSURL *url = [ NSURL URLWithString:@“远程地址”];

NSString *content = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];


NSURL *url = [NSURL URLWithString:@“远程地址”];

NSData *data = [NSData dataWithContentsOfURL:url];


NSString经常用于获取文本内容,NSData经常用于二进制内容(图片,音频等)


使用Reachability来实现网络检测


网络连接类型

ios进行网络连接时有两张方式,同步连接和异步连接

同步连接,发送同步请求则停止用户交互,知道服务器返回数据;

异步连接时,一面界面不会停止用户交互,程序继续响应用户操作


连接:

NSString *path = @“资源地址”;

NSURL *url = [[NSURL alloc]initWithString:path];

NSURLRequest *request = [[NSURLRequest alloc]initWithURL:url];

同步:

NSURLResponse *response = nil;

NSError *error = nil;

NSData *receiveData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];


//执行下面的前提是前面的连接请求必须完成

UIImage *image = [UIImage imageWithData:receiveData];


异步:

/*

第一参数为请求对象

第二为异步请求所在线程执行的操作队列

第三为异步请求完成后执行的代码段

*/

[NSURLConnection sendAsynchronousRequest:request queue:[[NSOperationQueue alloc]init]completionHandler:

^(NSURLResponse *response,NSData *data,NSError *error)

{

//异步请求完成,取得响应的数据

//代码段第一个参数为响应对象,第二个为接收到的数据,第三为错误对象

UIImage *image = [UIImage imageWithData : data];

}

//后面的代码不会等待请求完成才执行


HTTP网络请求类型

GET POST PUT DELETE

get post 请求方式的区别

1.GET 是用来从服务器上获得数据,而POST是用来想服务器上传递数据

2.GET将表单中数据的按照 variable = value 的形式 ,添加到所请求连接的URL后面,与URL之间用连接,各个变量之间用”&”连接

POST是将变量和值相对应然后附加到请求体中,传递到请求连接的URL

3.GET不安全,POST是将数据附加到请求体,所有操作对用户来讲是不可见的

4.GET传输数据小(主要受URL长度限制)POST可以传输大量数据,所以在上传文件只能使用POST方式请求

5.GET一般限制数据的编码必须为ASCII字符,POST支持整个ISO10646字符集



XML解析


XML解析一般分为两种方式进行解析,一种是基于DOM的解析方式,一种是基于SAX

DOM 解析XML时,读入整个XML文档并构建iGetter驻留内存的树结构(节点树)通过便利树结构可检索任意XML节点,读取他爹属性和值

SAX 基于事件通知模式,一边读取XML文档一边处理,当在读取解析过程中遇到需要处理的对象,会发出通知对其进行处理,ios自带XML解析类库NSXMLParse基于SAX的,

SAX(一般解析大量数据)事实上,手机开发中不会有太大量的数据进行处理,使用DOM方式可能更加好的理解,逻辑控制上更清晰



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值