网络请求

 一、网路请求的步骤:
1.确定地址NSURL
2.建立NSURLRequest
3.建立并启动连接NSURLConnection

通过代理方法处理网络请求
遵守协议:NSURLConnectionDataDelegate

二、网路代理方法
1.接受呆服务器的响应,服务器要传数据,客户端做接收准备
2.接收服务器传输的数据,可能会多次执行
3.接收数据完成,做后续处理
4.服务器请求失败,原因很多(网路环境等等)
5.向服务器发送数据,此方法经适用于POST,尤其上传文件

三、GET方法
在NSURL中指定参数(如果有,就可以不指定参数),例如:http://www.baidu.com

四、POST方法
定义一个可变的URLMutableRequest

1)时长
    [request setTimeOutInterVal:2.0f];
2)请求方式(默认是GET)
    [request setHTTPMethod:@"POST"];
3)数据体
    NSData *body = [string dataUsingEncoding:NSUTF8StringEncoding];
    [request setHTTPBody:body];

五、同步方法--必须要摸个网路请求完成后,才能后续执行,例如网银登陆
看到方法参数中包含__autoreleasing字样,在定义对象名前面加上"&"
        NSURLResponse *response = nil;
    NSError *error = nil;
    
同步操作没用完成,后面的代码不会执行
NSData *data = [NSURLConnecion sendSynchronousRequest:request returningResponse:&response error:&error];

1>接受到数据,表示工作正常
2>没有接受到数据,但是error为nil,表示接收到空数据
通常服务器没有对该请求做任何响应
3>error不为空,表示请求出错

六、异步方法
[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *reponse, NSData *data, NSError *error) {
 
        // 请求完成后的处理
}];

异步方法不用等待网路请求结束

七、NSURLRequest

    使用以下实例化方法,可以在实例化的同时指定请求超时时长。
    1.url
    2.缓存策略 默认是NSURLRequestUseProtocolCachePolicy
    3.超时时长 
    NSURLRequest *rq = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:2.0f];
    

 

posted on 2013-10-11 21:03  幸福继续  阅读(191)  评论(0)    收藏  举报

导航