iOS在进行网络请求的时候的网络状态的响应的判断

以下全是个人理解,如有错误,欢迎指正。

网络请求第一步,通常需要判断网络的连接状态以及网络的类型。常用到的网络监控类库比如通过AFNetworkReachabilityManager的对象属性reachable来进行判断,如果网络连接失败,则终止后面的逻辑,提醒用户,网络连接失败,请检查网络连接.这里同时推荐使用reactiveCocoa对AFNetworkReachabilityManager实例属性networkReachabilityStatus进行监听,一旦networkReachabilityStatus发生变化,比如切换到wifi,移动蜂窝网络,失去网络连接等状况进行提醒。
网络请求第二步,拿NSUrlRequest举例子,设置一个不读取缓存的延迟5秒过期的NSUrlRequest对象。
var request = NSURLRequest(URL: url, cachePolicy: NSURLRequestCachePolicy.ReloadIgnoringLocalCacheData, timeoutInterval: 5)
然后发起一个异步的网络请求:
            NSURLConnection .sendAsynchronousRequest(request, queue: NSOperationQueue.mainQueue(), completionHandler: { (response, data, error) -> Void in
                if error != nil{
                    println(error)
                    return;
                }
                var res:NSHTTPURLResponse = response as! NSHTTPURLResponse
                if res.statusCode == 200 {
                    var dic =   NSJSONSerialization.JSONObjectWithData(data, options:NSJSONReadingOptions.MutableContainers, error: nil) as! NSDictionary
                }else{
                    
                    println(res)
                }

            })

这里,首先判断是否返回error,因为在这请求之前判断过客户端网络,网络ok的时候才会进行到这一步,所以如果依然返回error,如果请求的url没问题的话,那么就可以判定服务器繁忙或者服务器宕机。
如果正确返回response,并且状态代码为200 ,那么可以继续写正常的程序逻辑。
如果response的状态代码不为200比如啥404,501等等,那么可以判定为啥?服务器连接失败?好像只能这么写。。。。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值