標籤:git 首頁 pos ext com 錯誤 img 操作 使用者體驗
網路請求一般分為同步請求和非同步請求,同步請求假設訪問時間過長,會造成介面卡死狀態,使用者體驗不是非常好。可是請求速度較快的話,也能夠考慮使用同步訪問。如今先來學習同步訪問。
(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協議頭; } }
輸出結果例如以下:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" >。
(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協議頭。 } }
測試該代碼時,我們能夠關閉網路。然後就會出現錯誤:我進行測試時,出現的錯誤例如以下:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" >。
github首頁:https://github.com/chenyufeng1991 。
歡迎大家訪問!
iOS項目開發實戰——使用同步請求擷取網頁源碼