IOS 網絡淺析-(九 NSURLSession代理簡介)


從最開始什么都不懂的小白,到到現在略知一二的小孩。我覺得不僅僅是我,大家應該都會注意到代理幾乎貫穿着IOS,那么問題來了,我接下來要說什么呢,那就是。標題的內容啦。上篇網絡系列的文章我介紹了NSURLSession,趁熱打鐵,這篇就介紹一下NSURLSession代理的實現。

NSURLSession這塊其實並不難,但是有人會說有點亂,大家不要擔心,不容易實現的api總會有大牛實現三方的,稍后我會為大家獻上“微不足道”的三方。

*關於NSURLSession我想再寫一篇到兩篇,雖然實際開發中有可能用不到,但是原生的我們還是知道比較好,過於依賴三方,大神也會成為小白*

言歸正轉,代碼中現本事:

//
//  ViewController.m
//  CX-NSURLSession代理簡介
//
//  Created by ma c on 16/3/21.
//  Copyright © 2016年 xubaoaichiyu. All rights reserved.
//

#import "ViewController.h"

@interface ViewController ()<NSURLSessionDataDelegate>

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
}
//這是為了測試而建立的點擊屏幕事件。
-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
    
    //代理 測試
    
    NSURL * url = [NSURL URLWithString:@"http://localhost/login.php?username=haha&password=123"];

    //創建自定義Session
    
    NSURLSession * session = [NSURLSession sessionWithConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration] delegate:self delegateQueue:[[NSOperationQueue alloc]init]];
    
    NSURLSessionTask * task = [session dataTaskWithURL:url];
    //開啟任務
    [task resume];
    
}
#pragma mark - deleDate
//接受到服務器響應
-(void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask didReceiveResponse:(NSURLResponse *)response completionHandler:(void (^)(NSURLSessionResponseDisposition))completionHandler
{
    //__FUNCTION__ c語言字符串用s
    NSLog(@"%s",__FUNCTION__);
    
    
    //允許服務器回傳數據
    completionHandler(NSURLSessionResponseAllow);
    
}
//接受服務器回傳的數據可能執行多次
-(void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask didReceiveData:(NSData *)data{
    
    NSLog(@"%@",[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding]);
    
}
//請求成功或者失敗
-(void)URLSession:(NSURLSession *)session didBecomeInvalidWithError:(NSError *)error{
    NSLog(@"%@",error);
}
@end

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM