国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

iOS網絡基礎

2019-11-14 19:18:06
字體:
來源:轉載
供稿:網友

iOS 網絡基礎

一次HTTP請求的完整過程

  瀏覽器/應用 發出請求(請求包含HTTP請求(GET,POST),地址URL,協議(HTTP/1.1),請求頭部,附加信息)

  --> Web服務端處理(頁面:靜態html頁面、動態php/asp/jsp頁面) --> 瀏覽器/應用

GET/POST區別:

  都是HTTP請求方式

  GET:只獲取數據,所有參數都在URL網址中,用于簡單地獲取數據(不安全)

  POST:獲取上傳附加數據,請求參數在請求頭文件,需傳輸加密信息

網絡請求開源庫AFNetWorking的使用

  //  [self testGetRequest];  //1.GET請求(html,json,xml)     //  [self testPostRequest];  //2.POST請求    //    [self testUploadFile];  //3.上傳文件    //    [self testDownloadFile];  //4.下載文件       [self testMonitorNetworkStatus];  //5.監控網絡狀態       //6.圖片異步功能(替代SDWebImage)    // UIKit+AFNetworking.h    // - (void)setImageWithURL:(NSURL *)url;        //7.有些請求特殊的請求頭    // BAIDU_WISE_UID=wapp_1428385381699_466;    //AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];    //[manager.requestSerializer setValue:@"wapp_1428385381699_466" forHTTPHeaderField:@"BAIDU_WISE_UID"];

1.GET請求

#pragma mark - 1.GET請求-(void)testGetRequest{    NSString *urlStr = @"http://www.baidu.com";        //定義AFHTTPRequest管理對象    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];        //注:默認情況下,默認數據格式JSON,content-type:JSON ,responSEObjectd是解析的字典和數組    //不是產生錯誤Code=-1016    //解決:設置解析器為HTTP形式,下載回來的為NSData    manager.responseSerializer = [AFHTTPResponseSerializer serializer];    [manager GET:urlStr parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {                //responseObject 重要參數--> 包含下載的數據        NSString *str = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];                NSLog(@"str = %@",str);            } failure:^(AFHTTPRequestOperation *operation, NSError *error) {        NSLog(@"error %@",error);    }];}

2.POST請求

#pragma mark - 2.POST請求-(void)testPostRequest{        //POST接口:http://quiet.local/testdir/login.php    //參數1: @"user" : @"quiet"    //參數2: @"passWord" : @"123"    NSString *urlString = @"http://quiet.local/testdir/login.php";    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];    manager.requestSerializer = [AFHTTPRequestSerializer serializer];        //參數1: 傳入地址    //參數2: 傳入URL請求的參數, 格式傳入字典//parameters --> 傳進一個字典@{}    [manager POST:urlString parameters:@{@"user":@"quiet",@"password":@"123"} success:^(AFHTTPRequestOperation *operation, id responseObject) {                NSString *str = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];         NSLog(@"str = %@",str);            } failure:^(AFHTTPRequestOperation *operation, NSError *error) {                NSLog(@"error %@",error);    }];    }

3.圖片上傳

#pragma mark - 3.圖片上傳-(void)testUploadFile{    //POST上傳接口    NSString *urlStr = @"http://quiet.local/uploadtest/upload.php";    //參數名: image : 參數值是圖片    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];        manager.responseSerializer = [AFHTTPResponseSerializer serializer];    [manager POST:urlStr parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {        //實現:上傳的數據附加到請求體中        NSString *path = [[NSBundle mainBundle] pathForResource:@"back2.jpg" ofType:nil];                //mimeType 多用途互聯網郵件擴展類型, 每種文件都有一個類型  --> 直接上網搜格式        [formData appendPartWithFileURL:[NSURL fileURLWithPath:path] name:@"12222" fileName:@"mddse.jpg" mimeType:@"12222/jpeg" error:nil];            } success:^(AFHTTPRequestOperation *operation, id responseObject) {                NSString *str = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];        NSLog(@"str = %@",str);            } failure:^(AFHTTPRequestOperation *operation, NSError *error) {                NSLog(@"error = %@",error);    }];    }

4.下載文件

#pragma mark - 4.下載文件-(void)testDownloadFile{    NSString *urlString = @"http://imgcache.QQ.com/club/item/avatar/zip/7/i87/all.zip";        //創建回話管理器對象(默認配置)AFURLsessionManager *manager    AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];        // NSURLSessionDownloadTask *task    NSURLSessionDownloadTask *task = [manager downloadTaskWithRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:urlString]] progress:nil destination:^NSURL *(NSURL *targetPath, NSURLResponse *response) {        //返回文件保存的位置        NSString *path = [NSString stringWithFormat:@"%@/Documents/all.zip",NSHomeDirectory()];        NSLog(@"path = %@",path);        return [NSURL fileURLWithPath:path];            } completionHandler:^(NSURLResponse *response, NSURL *filePath, NSError *error) {        //        NSLog(@"下載完成");    }];    //    [task resume];  //啟動任務    }

5.監控網絡狀態

#pragma mark - 5.監控網絡狀態-(void)testMonitorNetworkStatus{    AFHTTPRequestOperationManager *manager = [[AFHTTPRequestOperationManager alloc] initWithBaseURL:[NSURL URLWithString:@"www.baidu.com"]];    //    [manager.reachabilityManager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {        //AFNetworkReachabilityStatusn幾種狀態        NSDictionary *dict =@{@(AFNetworkReachabilityStatusUnknown):@"未知",@(AFNetworkReachabilityStatusNotReachable):@"不可達",@(AFNetworkReachabilityStatusReachableViaWWAN):@"GPRS",@(AFNetworkReachabilityStatusReachableViaWiFi):@"Wifi"};                NSLog(@"狀態為 %@",dict[@(status)]);    }];    [manager.reachabilityManager startMonitoring];   //開啟狀態監視}

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 定边县| 庆城县| 陇南市| 长子县| 鹤山市| 驻马店市| 通河县| 双柏县| 金寨县| 曲靖市| 大埔区| 集贤县| 周宁县| 莱西市| 望城县| 武汉市| 广灵县| 喀什市| 科技| 雅江县| 商丘市| 双辽市| 乡宁县| 鲁甸县| 建宁县| 汉寿县| 宾川县| 和田市| 晋宁县| 金平| 抚松县| 平潭县| 芒康县| 安塞县| 河源市| 探索| 焉耆| 普兰县| 福海县| 沈丘县| 肇东市|