1、同步请求:数据的请求过程是在主线程来执行的,网络数据加载需要一个时间过程,会堵塞主线程(在请求的过程中无法取消、无法监听加载进度)【一次全部请求下来】
异步请求:数据的请求过程在多线程来执行(在请求过程中可以取消、可以监听加载进度)【不断的请求】
2、(fundation框架自带的网络请求方式)
初始化URL实例
NSURL *url = [NSURL URLWithString@“http://………”];
NSURLRequest的使用
(1.)//不可变的
NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy(缓存策略) timeoutInterval:60(超时时间)];
(2.)//可变的(可对网络请求的信息重新设置)
【一般用这个】
NSMutableURLRequest *request = [NSMutableURLRequest alloc] init];
[request setURL:url];
//设置请求方式:
[request setHTTPMethod:@“post”];
//设置超长时间
[request setTimeoutInterval;60];
//设置请求体(参数)[!!!post请求体也可放在URL后面!!!!]
[request setHTTPBody: _data];
//设置请求头
[request setValue:@“…” forHTTPHeaderField:@cooks””];
NSURLResponse*response;//包装服务器响应的一些东西eg:响应头 响应码...
//同步请求
NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:nil]
//异步请求(设置一个代理对象 因为要通过代理方法传数据)
[NSURLConnection connectionWithRequest:request delegate:self];
3、异步请求的另一种方式:
开辟一个子线程,在该线程里创建一个同步请求相当于异步请求
4、若异步请求在多线程里,那么最后要回到主线程
5、加载数据用NSData
6、UI的操作一般放到主线程去
eg:将对象添加到视图上