iOS項目開發實戰——使用同步請求獲取網頁源碼
阿新 • • 發佈:2017-07-30
b2c ont over per 未能 enter nsstring targe 技術
輸出結果例如以下:
測試該代碼時,我們能夠關閉網絡。然後就會出現錯誤:我進行測試時,出現的錯誤例如以下:
網絡請求一般分為同步請求和異步請求,同步請求假設訪問時間過長,會造成界面卡死狀態,用戶體驗不是非常好。可是請求速度較快的話,也能夠考慮使用同步訪問。如今先來學習同步訪問。
(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 。
歡迎大家訪問!
iOS項目開發實戰——使用同步請求獲取網頁源碼