1.http簡介 http : 超文本傳輸協議(HTTP, HyperText Transfer Protocol)是互聯網上應用最普遍的一種網絡協議,全部的WWW文 件都必須遵照這個協議,設計HTTP的最初目的是爲了提供發佈和接受HTML頁面的方法。 HTTP是一個客戶端和服務器端請求和應答的標準(TCP)。客戶端是終端用戶,服務器端是網站。經過使用Web瀏覽器、網 絡爬蟲或者其它的工具,客戶端發起一個到服務器上指定端口(默認端口爲80)的HTTP請求。 HTTP協議(HyperText Transfer Protocol,超文本傳輸協議)是用於從WWW服務器傳輸超文本到本地瀏覽器的傳輸協議 。它可使瀏覽器更加高效,使網絡傳輸減小。它不只保證計算機正確快速地傳輸超文本文檔,還肯定傳輸文檔中的哪一部 分,以及哪部份內容首先顯示(如文本先於圖形)等。 2.sdk簡介 軟件開發工具包(SDK Software development kit) 通常都是一些被軟件工程師用於爲特定的軟件包、軟件框架、硬件平 臺、操做系統等創建應用軟件的開發工具的集合。 API(Application Programming Interface,應用編程接口)其實就是操做系統留給應用程序的一個調用接口,應用程 序經過調用操做系統的 API 而使操做系統去執行應用程序的命令(動做)。 3. 網絡數據請求(GET) 3.1.同步get //首先將網址初始化一個能夠識別的oc的字符串 NSString *urlStr = [NSString stringWithFormat:]; //若是網址中存在中文的話,要進行URLENcode NSString *newStr = [urlStr stringByAddingPercentEscapesUsingEncode:NSUTF8SreingEncoding] //構建網絡URL對象 NSURL *url = [NSURL URLWithString:newStr]; //建立網絡請求 NSURLRequest *request = [NSURLRequest requestWithURL:url]; //創立鏈接 NSURLResponse *response = nil; NSError *error = nil; NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:& error]; //解析獲得的數據 NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragment s error:nil]; 3.2.異步get //建立URL NSURL *url = [NSURL URLWithString:@"http://172.16.12.183/index.php"]; //建立請求對象 NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; //解析數據(BLock) [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) { NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil]; 4. 網絡數據請求(POST) 4.1.同步post //建立URL NSURL *url = [NSURL URLWithString:@""]; //準備請求對象 NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; [request setHTTPMethod:@"POST"]; //3.準備參數 NSString *param = [NSString stringWithFormat:@"userName=%@&password=%@",self.UserName.text,self.P assWard.text]; //將參數轉爲NSData NSData *paramData = [param dataUsingEncoding:NSUTF8StringEncoding]; [request setHTTPBody:paramData]; //創立鏈接 NSData *data = [NSURLConnection sendSynchronsRequest:request returningResponse:nil error:nil]; //解析數據 NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragme nts error:nil]; 4.2 異步post //1.建立URL NSURL *url = [NSURL URLWithString:@"http://172.16.12.183/index.php"]; //2.準備請求對象 NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; [request setHTTPMethod:@"POST"]; //3.準備參數 NSString *param = [NSString stringWithFormat:@"userName=%@&password=%@",self.UserName.text,self.PassWard.text]; //將參數轉爲NSData NSData *paramData = [param dataUsingEncoding:NSUTF8StringEncoding]; [request setHTTPBody:paramData]; //創建鏈接 NSURLConnection *connection = [NSURLConnection connectionWithRequest:request delegate:self];// 協議要寫上 //4.啓動鏈接 [connection start]; //代理協議的方法 //已經收到響應 - (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response { _receiveData = [NSMutableData data]; } //開始接受數據 - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data { //屢次執行 [_receiveData appendData:data];//拼接數據 } //結束接受數據 - (void)connectionDidFinishLoading:(NSURLConnection*)connection { //解析 NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:_receiveData options:NSJSONReadingAll owFragments error:nil]; NSLog(@"%@",dic); } //方式錯誤 - (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error { } 5. GET和POST的區別: 1. GET請求的接口會包含參數部分,參數做爲網址的一部分,服務器地址與參數之間經過?來間隔,POST會將服務器地址 與參數進行分開,請求接口中只有服務器地址,而參數會做爲請求的一部分,提交後臺服務器 2. GET請求參數會出如今接口中,不安全,而POST請求相對安全 3.雖然GET和POST請求均可以請求和提交數據,可是通常的GET多用於從後臺請求數據,POST多用於向後臺提交數據。 6. 同步和異步的區別: 1. 同步鏈接:主線程去請求數據,當數據請求完畢以前,其餘線程一概不響應,會形成程序假死現象。 2. 異步鏈接:會單獨開一個線程去處理網絡請求中的數據,主線程依然處於交互狀態,程序運行流暢。