现如今大部分的网络请求都是使用 NSURLConnection 这个类来完成,那么了解这个类对网络数据请求来说就至关重要的。
NSURLConnection 的常用类
· NSURL :请求地址
· NSURLRequest :封装一个请求,保存发给服务器的全部数据,包括一个NSURL对象,请求方法、请求头、请求体….
· NSMutableRequest :NSURLRequest 的子类
· NSURLConnection:负责发送请求,建立客户端和服务器的连接。发送NSURLRequest的数据给服务器,并收集来自服务器的响应数据
NSURLConnection的使用
使用 NSURLConnection 这个类的步骤主要有三个:
1)创建一个NSURL对象,设置请求路径(设置请求路径)
2)传入NSURL创建一个NSURLRequest对象,设置请求头和请求体(创建请求对象)
3)使用NSURLConnection发送NSURLRequest(发送请求)
在请求数据的过程中根据连接服务器的方式分为同步请求和异步请求这两种。
- 同步请求
NSData *data=[NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
- 异步请求
- 使用 block 回调
NSOperationQueue *queue=[NSOperationQueue mainQueue];
[NSURLConnection sendAsynchronousRequest:request queue:queue completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) { }];
- 代理
NSURLConnection *conn=[NSURLConnection connectionWithRequest:request delegate:self];
[conn start];
然后在NSURLConnectionDataDelegate代理方法里面执行事件。
NSMutableURLRequest 的妙用
NSMutableURLRequest是NSURLRequest的子类,常用方法有
- 设置请求超时等待时间(超过这个时间就算超时,请求失败)- (void)setTimeoutInterval:(NSTimeInterval)seconds;
- 设置请求方法(比如GET和POST)- (void)setHTTPMethod:(NSString )method;
- 设置请求体 - (void)setHTTPBody:(NSData )data;
- 设置请求头 - (void)setValue:(NSString )value forHTTPHeaderField:(NSString )field;