iOS專案開發實戰——使用同步請求獲取網頁原始碼
網路請求一般分為同步請求和非同步請求,同步請求如果訪問時間過長,會造成介面卡死狀態,使用者體驗不是很好。但是請求速度較快的話,也可以考慮使用同步訪問。現在先來學習同步訪問。
(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 。歡迎大家訪問!
相關文章
- QWebView獲取網頁原始碼WebView網頁原始碼
- Okhttp同步請求原始碼分析HTTP原始碼
- Postman模擬瀏覽器網頁請求並獲取網頁資料Postman瀏覽器網頁
- OKHttp原始碼學習同步請求和非同步請求(二)HTTP原始碼非同步
- vue專案及axios請求獲取資料(cp網站搭建制作)VueiOS網站
- iOS 使用Moya網路請求iOS
- 爬蟲實戰:從HTTP請求獲取資料解析社群爬蟲HTTP
- iOS 開發中使用 NSURLProtocol 攔截 HTTP 請求iOSProtocolHTTP
- SpringMVC原始碼之Handler註冊、獲取以及請求controller中方法SpringMVC原始碼Controller
- 深入OKHttp原始碼分析(一)----同步和非同步請求流程和原始碼分析HTTP原始碼非同步
- 使用Python獲取HTTP請求頭資料PythonHTTP
- python requests get請求 如何獲取所有請求Python
- 使用go對NTP發起請求獲取當前時間Go
- Retrofit網路請求原始碼解析原始碼
- Python使用request包請求網頁亂碼解決方法Python網頁
- iOS開發·網路請求大總結(NSURLConnection,NSURLSession,AFNetworking)iOSSession
- [小程式開發實戰]使用WxJava實現手機號獲取Java
- 原始碼分析Gateway請求轉發原始碼Gateway
- vue專案技術運用(BC網站搭建制作)及axios請求獲取資料Vue網站iOS
- 想獲取JS載入網頁的源網頁的原始碼,不想獲取JS載入後的資料JS網頁原始碼
- SpringBoot專案的html頁面使用axios進行get post請求Spring BootHTMLiOS
- Laravel 檔案上傳和獲取請求引數Laravel
- Loadrunner+引數化檔案編碼格式+獲取請求報文發生異常
- flask 專案開發實戰Flask
- .NET微信網頁開發之網頁授權獲取使用者基本資訊網頁
- Retrofit原始碼解析之網路請求原始碼
- Volley 原始碼解析之網路請求原始碼
- .NET Core實戰專案之CMS 第十四章 開發篇-防止跨站請求偽造
- Python靜態網頁爬蟲專案實戰Python網頁爬蟲
- spring mvc中獲取請求URLSpringMVC
- WEB實戰:使用MERN技術棧開發專案Web
- 直播平臺原始碼,iOS中使用 Date/NSDate 來獲取時間原始碼iOS
- 專案實戰介面開發SpringBootSpring Boot
- Axios 原始碼解讀 —— 網路請求篇iOS原始碼
- iOS – RxSwift 專案實戰記錄iOSSwift
- $request 請求方法 獲取 API 的當前使用者API
- Appium iOS 測試指令碼開發實戰APPiOS指令碼
- 現有Android專案中整合Flutter/Flutter混合開發實戰(二):FlutterActivity原始碼分析AndroidFlutter原始碼
- OpenHarmony開發筆記:獲取原始碼(repo安裝)筆記原始碼