您的位置:首页 > 移动开发 > IOS开发

iOS项目开发实战——使用同步请求获取网页源代码

2015-08-11 22:10 585 查看
        网络请求一般分为同步请求和异步请求,同步请求如果访问时间过长,会造成界面卡死状态,用户体验不是很好。但是请求速度较快的话,也可以考虑使用同步访问。现在先来学习同步访问。

(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协议头;
}
}


输出结果如下:




 (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协议头;
}
}


测试该代码时,我们可以关闭网络,然后就会出现错误:我进行测试时,出现的错误如下:




github主页:https://github.com/chenyufeng1991  。欢迎大家访问!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: