码迷,mamicode.com
首页 > 移动开发 > 详细

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

时间:2015-08-11 23:27:45      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:ios   swift   同步请求   网络编程   

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

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

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

技术分享



版权声明:本文为博主原创文章,未经博主允许不得转载。

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

标签:ios   swift   同步请求   网络编程   

原文地址:http://blog.csdn.net/chenyufeng1991/article/details/47427927

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!