網絡請求

 1、網路請求的步驟:
1.肯定地址NSURL
2.創建NSURLRequest
3.創建並啓動鏈接NSURLConnection

經過代理方法處理網絡請求
遵照協議:NSURLConnectionDataDelegate

2、網路代理方法
1.接受呆服務器的響應,服務器要傳數據,客戶端作接收準備
2.接收服務器傳輸的數據,可能會屢次執行
3.接收數據完成,作後續處理
4.服務器請求失敗,緣由不少(網路環境等等)
5.向服務器發送數據,此方法經適用於POST,尤爲上傳文件

3、GET方法
在NSURL中指定參數(若是有,就能夠不指定參數),例如:http://www.baidu.com

4、POST方法
定義一個可變的URLMutableRequest

1)時長
    [request setTimeOutInterVal:2.0f];
2)請求方式(默認是GET)
    [request setHTTPMethod:@"POST"];
3)數據體
    NSData *body = [string dataUsingEncoding:NSUTF8StringEncoding];
    [request setHTTPBody:body];

5、同步方法--必需要摸個網路請求完成後,才能後續執行,例如網銀登錄
看到方法參數中包含__autoreleasing字樣,在定義對象名前面加上"&"
        NSURLResponse *response = nil;
    NSError *error = nil;
    
同步操做沒用完成,後面的代碼不會執行
NSData *data = [NSURLConnecion sendSynchronousRequest:request returningResponse:&response error:&error];

1>接受到數據,表示工做正常
2>沒有接受到數據,可是error爲nil,表示接收到空數據
一般服務器沒有對該請求作任何響應
3>error不爲空,表示請求出錯

6、異步方法
[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *reponse, NSData *data, NSError *error) {
 
        // 請求完成後的處理
}];

異步方法不用等待網路請求結束

7、NSURLRequest

    使用如下實例化方法,能夠在實例化的同時指定請求超時時長。
    1.url
    2.緩存策略 默認是NSURLRequestUseProtocolCachePolicy
    3.超時時長 
    NSURLRequest *rq = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:2.0f];
    
相關文章
相關標籤/搜索