一.常用类
1.NSURL:请求地址
例如:
NSURL*url = [NSURLURLWithString:@“https://www.xxx.com/login?test=test"];
2.NSURLRequest:一个NSURLRequest对象就代表一个请求,它包含的信息有
一个NSURL对象
请求方法、请求头、请求体
请求超时
// 1.创建请求对象
NSURLRequest*request = [NSURLRequestrequestWithURL:url];
3.NSMutableURLRequest:NSURLRequest的子类
// 1.请求路径
NSURL*url = [NSURLURLWithString:@"https://www.xxx.com/login"];
// 2.创建请求
NSMutableURLRequest*request = [NSMutableURLRequestrequestWithURL:url];
//更改请求方法
request.HTTPMethod=@"POST";
//设置请求体
request.HTTPBody= [@“name=test007&pwd=123456"dataUsingEncoding:NSUTF8StringEncoding];
//设置超时(5秒后超时)
request.timeoutInterval=5;
4.NSURLConnection
负责发送请求,建立客户端和服务器的连接
发送数据给服务器,并收集来自服务器的响应数据
二.NSURLConnection的使用步骤
创建一个NSURL对象,设置请求路径
传入NSURL创建一个NSURLRequest对象,设置请求头和请求体
使用NSURLConnection发送请求
三.NSURLConnection发送请求
1.NSURLConnection常见的发送请求方法有以下几种
同步请求
+ (NSData*)sendSynchronousRequest:(NSURLRequest*)requestreturningResponse:(NSURLResponse**)response error:(NSError**)error;
异步请求:根据对服务器返回数据的处理方式的不同,又可以分为2种
a.block回调
+ (void)sendAsynchronousRequest:(NSURLRequest*)requestqueue:(NSOperationQueue*) queuecompletionHandler:(void(^)(NSURLResponse*response,NSData* data,NSError*connectionError))handler;
b.代理
- (id)initWithRequest:(NSURLRequest*)request delegate:(id)delegate;
+ (NSURLConnection*)connectionWithRequest:(NSURLRequest*)request delegate:(id)delegate;
- (id)initWithRequest:(NSURLRequest*)request delegate:(id)delegatestartImmediately:(BOOL)startImmediately;
c.在startImmediately=NO的情况下,需要调用start方法开始发送请求
- (void)start;
注意:成为NSURLConnection的代理,最好遵守NSURLConnectionDataDelegate协议
四.NSURLConnectionDelegate
1.NSURLConnectionDataDelegate协议中的代理方法
a.开始接收到服务器的响应时调用
- (void)connection:(NSURLConnection*)connectiondidReceiveResponse:(NSURLResponse*)response;
b.接收到服务器返回的数据时调用(服务器返回的数据比较大时会调用多次)
- (void)connection:(NSURLConnection*)connectiondidReceiveData:(NSData*)data;
c.服务器返回的数据完全接收完毕后调用
- (void)connectionDidFinishLoading:(NSURLConnection*)connection;
d.请求出错时调用(比如请求超时)
- (void)connection:(NSURLConnection*)connectiondidFailWithError:(NSError*)error;
四.NSMutableURLRequest
NSMutableURLRequest是NSURLRequest的子类,常用方法有
1.设置请求超时等待时间(超过这个时间就算超时,请求失败)
- (void)setTimeoutInterval:(NSTimeInterval)seconds;
2.设置请求方法(比如GET和POST)
- (void)setHTTPMethod:(NSString*)method;
3.设置请求体
- (void)setHTTPBody:(NSData*)data;
4.设置请求头
- (void)setValue:(NSString*)valueforHTTPHeaderField:(NSString*)field;
五.创建GET和POST请求
创建GET请求
NSString*urlStr= [@"https://www.xxx.com/login?name=tbb&pwd=123444"stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];//有NSUTF8StringEncoding可用中文
NSURL*url= [NSURLURLWithString:urlStr];
NSMutableURLRequest*request = [NSMutableURLRequestrequestWithURL:url];
创建POST请求
NSString*urlStr =@"https://www.xxx.com/login";
NSURL*url = [NSURLURLWithString:urlStr];
NSMutableURLRequest*request = [NSMutableURLRequestrequestWithURL:url];
request.HTTPMethod=@"POST";
//请求体
NSString*bodyStr=@"name=tbb&pwd=123444";
request.HTTPBody= [bodyStrdataUsingEncoding:NSUTF8StringEncoding];
get和post基本使用Code:https://github.com/tangbinbinM/NSURLConnection-get-post.git