网络请求一般分为同步请求和异步请求,同步请求如果访问时间过长,会造成界面卡死状态,用户体验不是很好,
iOS项目开发实战——使用同步请求获取网页源代码
。但是请求速度较快的话,也可以考虑使用同步访问。现在先来学习同步访问。(1)在viewDidLoad()方法中实现如下代码:
override func viewDidLoad() { super.viewDidLoad() var data = NSURLConnection.sendSynchronousRequest(NSURLRequest(URL: NSURL(string: http://www.baidu.com)!), returningResponse: nil, error: nil) if let d = data{ println(NSString(data: d, encoding: NSUTF8StringEncoding)!)//打印HTML }else{ println(未能获取网络数据) } }输出结果会成功打印出网页HTML。
(2)打印出Http协议头
在viewDidLoad()中实现以下代码:
override func viewDidLoad() { super.viewDidLoad() var resp:NSURLResponse? var data = NSURLConnection.sendSynchronousRequest(NSURLRequest(URL: NSURL(string: http://www.baidu.com)!), returningResponse: &resp, error: nil) if let r = resp{ println(r) //打印Http协议头; } }输出结果如下:
,
电脑资料
《iOS项目开发实战——使用同步请求获取网页源代码》(https://www.unjs.com)。(3)打印错误信息
在进行网络操作时,偶尔出现错误是不可避免的,我们可以打印出错误,便于我们查错,打印错误代码如下:
override func viewDidLoad() { super.viewDidLoad() var resp:NSURLResponse? var error:NSError? var data = NSURLConnection.sendSynchronousRequest(NSURLRequest(URL: NSURL(string: http://www.baidu.com)!), returningResponse: &resp, error: &error) if let e = error{ println(e) //打印Http协议头; } }测试该代码时,我们可以关闭网络,然后就会出现错误:我进行测试时,出现的错误如下:
。