標籤:
小知識:
1, HTTP協議,Hyper Text Transfer Protocol(超?本傳輸協議)是?於從萬維?伺服器傳送超?本到本地瀏覽器的傳輸協議,HTTP是 ?個應?層協議,由請求和響應構成,是?個標準的用戶端伺服器模型。
2,url,統?資源定位器,也被稱為?址,因特?上標準的資源?址
url的符文法: 協議://授權/路徑?查詢
協議:ftp://(?件傳輸協議) http://(超?本傳輸協議) https://(安全超文字傳輸通訊協定 (HTTPS)) file://(本地檔案協議)
3,ios下進行網路編程主要分為一下三步:
1, 用戶端發送請求
發送請求的方式:GET和POST
GET請求:將資訊直接拼接到URL的後面,在真正開發中用的比較多
POST請求:將一些重要訊息轉化成二進位流。在真正開發中常用於驗證使用者名稱、密碼是否正確,給伺服器上傳資料等
注意:1),請求方式是由後台決定的,通過介面文檔可以得知請求的方式
2),請求方式還有DELETE、PUT等。除了GET可以使用NSURLRequst之外,其他請求必須使用NSURLMutableRequst ,明確指定當前的HTTP請求方式
2, 和伺服器串連
3, 伺服器做出響應
一、兩種請求方式
1、給伺服器傳輸資料的?式: GET:通過?址字串。
POST:通過data
2、傳輸資料的??: GET:?址字串最多255位元組。
POST:使?NSData,容量超過1G
3、安全性: GET:所有傳輸給伺服器的資料,顯?在?址?,類似於密碼的明?輸?,直接可?。
POST:資料被轉成NSData(?進位資料),類似於密碼的密?輸?,?法直接讀取。
二、 GET請求
擷取請求的網址
NSURL *url = [NSURL URLWithString:網址字串];
封裝請求對象
NSURLRequest *requst = [NSURLRequest requestWithURL:url];
發送請求
NSURLResponse *response = nil;
NSError *error = nil;
NSData *data = [NSURLConnection sendSynchronousRequest:requst returningResponse:&response error:&error];
/*
要求方法
[NSURLConnection sendSynchronousRequest:(NSURLRequest *) returningResponse:(NSURLResponse **) error:(NSError **)]
下面三個參數
NSURLRequst
NSURLResponse
NSError
後面兩個參數之所以傳地址是為了字啊執行該方法時在方法的內部修改參數的值, 這種用法相當於讓一個方法有多個傳回值
*/
解析接收的資料(接收的資料類型視傳回型別而定)
NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:(NSJSONReadingMutableContainers | NSJSONReadingMutableLeaves) error:nil];
三、POST請求
擷取請求網址
NSURL *url = [NSURL URLWithString:網址字串];
封裝成對象
NSMutableURLRequest *requst = [NSMutableURLRequest requestWithURL:url cachePolicy:(NSURLRequestUseProtocolCachePolicy) timeoutInterval:10];
/*
上面方法的參數:
1, URL 網址
2, cachePolicy:緩衝機制,一般情況下使用 NSURLRequestUseProtocolCachePolicy
3, timeoutInterval 逾時機制
*/
發送請求
[requst setHTTPMethod:@"POST"];
NSData *data = [需要加密的字串 dataUsingEncoding:NSUTF8StringEncoding];
[requst setHTTPBody:data];
NSURLResponse *response = nil;
NSError *error = nil;
NSData *contentData = [NSURLConnection sendSynchronousRequest:requst returningResponse:&response error:&error];
資料解析
NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:contentData options:(NSJSONReadingMutableLeaves | NSJSONReadingMutableContainers) error:nil];
ios網路編程(一)之網路請求