博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS项目开发实战——使用同步请求获取网页源码
阅读量:5944 次
发布时间:2019-06-19

本文共 1401 字,大约阅读时间需要 4 分钟。

        网络请求一般分为同步请求和异步请求,同步请求假设訪问时间过长,会造成界面卡死状态,用户体验不是非常好。可是请求速度较快的话,也能够考虑使用同步訪问。如今先来学习同步訪问。

(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主页:  。

欢迎大家訪问!

你可能感兴趣的文章
WebApi跨域的解决方法
查看>>
(转)利用libcurl和国内著名的两个物联网云端通讯的例程, ubuntu和openwrt下调试成功(四)...
查看>>
C#中DataGrid控件的基本使用
查看>>
背景属性的相关属性设置
查看>>
js 获取节点
查看>>
获取app当前可用的剩余内存
查看>>
正则表达式 字符转义
查看>>
分享插件
查看>>
CCF NOI1134 奶牛晒衣服
查看>>
决策树
查看>>
CSS常用属性
查看>>
php正则匹配utf-8编码的中文汉字
查看>>
MemCache在Windows环境下的搭建及启动
查看>>
Python之路(第二十一篇) re模块
查看>>
面向对象进阶
查看>>
第五章 引用类型
查看>>
Spring源码阅读 源码环境搭建(一)
查看>>
修改echarts环形图的牵引线及文字位置
查看>>
<知识库的构建> 5-3 马尔科夫逻辑 Markov logic
查看>>
Java Web整合开发(14) -- Struts 1.x 概述
查看>>