讀書筆記——IOS之Web開發
Web開發
主要的要求方法Get請求:資料以明文在URL中,資料量小 Post請求:資料大小沒有限制 HEAD請求:要求標頭資訊
程式的實現需要藉助幾個對象:
NSURLRequest:建立了一個請求,可以指定緩衝策略、逾時時間。和NSURLRequest對應的還有一個NSMutableURLRequest,如果請求定義為NSMutableURLRequest則可以指定要求方法(GET或POST)等資訊。
NSURLConnection:用於發送請求,可以指定請求和代理。當前調用NSURLConnection的start方法後開始發送非同步請求。
檔案的下載方法
Get和POST都是不行的,正確的做法是這樣的:
要分段下載,每次請求下載的範圍,服務根據範圍響應這部分的資料,對於檔案大小資訊如何擷取呢?採用HEAD請求拿到。
NSURLSession
NSURLConnection的改良對象。
UIWebview 瀏覽器控制項IOS操作頁面:webViewDidFinishLoad:代理方法中通過stringByEvaluatingJavaScriptFromString: 方法可以操作頁面中的元素,例如在下面的方法中讀取了頁面標題、修改了其中的內容。(通過JS) 頁面中調用Object-C: 當需要進行一個js操作時讓頁面進行一個重新導向,並且在重新導向過程中傳入一系列參數。在UIWebView的代理方法中有一個webView: shouldStartLoadWithRequest:navigationType方法,這個方法會在頁面載入前執行,這樣可以在這裡攔截重新導向,並且擷取定向URL中的參數,根據這些參數約定一個方法去執行。(也就是把重新導向過程攔下來,然後擷取請求的參數)網路狀態檢測
使用AFNetworking架構檢測,發送一個URL然後去檢測網路狀態變化,網路改變後則調用相應的網路狀態改變方法。
#pragma mark 網路狀態監測-(**void**)checkNetworkStatus{ //建立一個用於測試的url NSURL *url=[NSURL URLWithString:@http://www.apple.com]; AFHTTPRequestOperationManager *operationManager=[[AFHTTPRequestOperationManager alloc]initWithBaseURL:url]; //根據不同的網路狀態改變去做相應處理 [operationManager.reachabilityManager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) { **switch** (status) { **case** AFNetworkReachabilityStatusReachableViaWWAN: [**self** alert:@2G/3G/4G Connection.]; **break**; **case** AFNetworkReachabilityStatusReachableViaWiFi: [**self** alert:@WiFi Connection.]; **break**; **case** AFNetworkReachabilityStatusNotReachable: [**self** alert:@Network not found.]; **break**; **default**: [**self** alert:@Unknown.]; **break**; } }]; //開始監控 [operationManager.reachabilityManager startMonitoring];}