NSURLConnection包裝方法
GET
// 1.創(chuàng)建AFN管理者// AFHTTPRequestOperationManager內(nèi)部包裝了NSURLConnectionAFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];// 2.利用AFN管理者發(fā)送請求NSDictionary *params = @{ @"username" : @"name", @"pwd" : @"passWord" };[manager GET:@"http://12.2.226.186:32812/login" parameters:params success:^(AFHTTPRequestOperation *operation, id responSEObject) { NSLog(@"請求成功---%@", responseObject);} failure:^(AFHTTPRequestOperation *operation, NSError *error) { NSLog(@"請求失敗---%@", error);}];
// 1.創(chuàng)建AFN管理者// AFHTTPRequestOperationManager內(nèi)部包裝了NSURLConnectionAFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];// 2.利用AFN管理者發(fā)送請求NSDictionary *params = @{ @"username" : @"name", @"pwd" : @"password" };[manager POST:@"http://12.2.226.186:32812/login" parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) { NSLog(@"請求成功---%@", responseObject);} failure:^(AFHTTPRequestOperation *operation, NSError *error) { NSLog(@"請求失敗---%@", error);}];
NSURLsession包裝方法
GET
// 1.創(chuàng)建AFN管理者AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];// 2.利用AFN管理者發(fā)送請求NSDictionary *params = @{ @"username" : @"name", @"pwd" : @"password" };[manager GET:@"http://12.2.226.186:32812/login" parameters:params success:^(NSURLSessionDataTask *task, id responseObject) { NSLog(@"請求成功---%@", responseObject);} failure:^(NSURLSessionDataTask *task, NSError *error) { NSLog(@"請求失敗---%@", error);}];
// 1.創(chuàng)建AFN管理者AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];// 2.利用AFN管理者發(fā)送請求NSDictionary *params = @{ @"username" : @"name", @"pwd" : @"password" };[manager POST:@"http://12.2.226.186:32812/login" parameters:params success:^(NSURLSessionDataTask *task, id responseObject) { NSLog(@"請求成功---%@", responseObject);} failure:^(NSURLSessionDataTask *task, NSError *error) { NSLog(@"請求失敗---%@", error);}];
文件下載
// 1.創(chuàng)建AFN管理者 AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; // 2.利用AFN管理者發(fā)送請求 NSURLRequest *reuqest = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://12.2.226.186:32812/resources/videos/minion_02.mp4"]]; [[manager downloadTaskWithRequest:reuqest progress:nil destination:^NSURL *(NSURL *targetPath, NSURLResponse *response) { // targetPath: 已經(jīng)下載好的文件路徑 NSLog(@"targetPath = %@", targetPath); NSString *path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject]; NSURL *documentsDirectoryPath = [NSURL fileURLWithPath:[path stringByAppendingPathComponent:response.suggestedFilename]]; // 返回需要保存文件的目標(biāo)路徑 return documentsDirectoryPath; } completionHandler:^(NSURLResponse *response, NSURL *filePath, NSError *error) { NSLog(@"filePath = %@", filePath); }] resume];
監(jiān)聽進(jìn)度
/* 要跟蹤進(jìn)度,需要使用 NSProgress,是在 iOS 7.0 推出的,專門用來跟蹤進(jìn)度的類! NSProgress只是一個(gè)對象!如何跟蹤進(jìn)度!-> KVO 對屬性變化的監(jiān)聽! @property int64_t totalUnitCount; 總單位數(shù) @property int64_t completedUnitCount; 完成單位數(shù) */ NSProgress *progress = nil; // 注冊通知 [progress addObserver:self forKeyPath:@"completedUnitCount" options:NSKeyValueObservingOptionNew context:nil]; - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context { NSLog(@"%@", object); /** 準(zhǔn)確的獲得進(jìn)度 localizedDescription 10% localizedAdditionalDescription completed 32,768 of 318,829 fractionCompleted 0.102776(completedUnitCount/totalUnitCount) */ if ([object isKindOfClass:[NSProgress class]]) { NSProgress *p = (NSProgress *)object; NSLog(@"%@, %@, %f", p.localizedDescription, p.localizedAdditionalDescription, p.fractionCompleted);
文件上傳
// 1.創(chuàng)建AFN管理者 AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; // 2.利用AFN管理者發(fā)送請求 [manager POST:@"http://12.2.226.186:32812/upload" parameters:@{@"username" : @"jx"} constructingBodyWithBlock:^(id<AFMultipartFormData> formData) { NSData *data = [NSData dataWithContentsOfFile:@"/Users/Jx-Liu/Desktop/Snip20150811_1.png"]; [formData appendPartWithFileData:data name:@"file" fileName:@"jx.png" mimeType:@"image/png"]; } success:^(NSURLSessionDataTask *task, id responseObject) { NSLog(@"請求成功---%@", responseObject); } failure:^(NSURLSessionDataTask *task, NSError *error) { NSLog(@"請求失敗---%@", error); }];[formData appendPartWithFileURL:[NSURL fileURLWithPath:@"/Users/Jx-Liu/Desktop/Snip20150811_1.png"] name:@"file" fileName:@"jx.png" mimeType:@"image/png" error:nil];[formData appendPartWithFileURL:[NSURL fileURLWithPath:@"/Users/Jx-Liu/Desktop/Snip20150811_1.png"] name:@"file" error:nil];
AFN解耦
序列化
/ 1.創(chuàng)建網(wǎng)絡(luò)監(jiān)聽對象 AFNetworkReachabilityManager *manager = [AFNetworkReachabilityManager sharedManager]; // 2.設(shè)置網(wǎng)絡(luò)狀態(tài)改變回調(diào) [manager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) { /* AFNetworkReachabilityStatusUnknown = -1, // 未知 AFNetworkReachabilityStatusNotReachable = 0, // 無連接 AFNetworkReachabilityStatusReachableViaWWAN = 1, // 3G 花錢 AFNetworkReachabilityStatusReachableViaWiFi = 2, // 局域網(wǎng)絡(luò),不花錢 */ switch (status) { case 0: NSLog(@"無連接"); break; case 1: NSLog(@"3G 花錢"); break; case 2: NSLog(@"局域網(wǎng)絡(luò),不花錢"); break; default: NSLog(@"未知"); break; } }]; // 3.開始監(jiān)聽 [manager startMonitoring];
- (void)viewDidLoad { [super viewDidLoad]; // 注冊通知 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(getNetworkStatus) name:kReachabilityChangedNotification object:nil]; // 開始監(jiān)聽網(wǎng)絡(luò) self.reachability = [Reachability reachabilityForInternetConnection]; [self.reachability startNotifier];}- (void)dealloc{ [[NSNotificationCenter defaultCenter] removeObserver:self]; [self.reachability stopNotifier];}- (void)getNetworkStatus{ if ([Reachability reachabilityForLocalWiFi].currentReachabilityStatus != NotReachable) { NSLog(@"wifi"); }else if ([Reachability reachabilityForInternetConnection].currentReachabilityStatus != NotReachable) { NSLog(@"手機(jī)自帶網(wǎng)絡(luò)"); }else { NSLog(@"沒有網(wǎng)絡(luò)"); }}
CocoaPods安裝東西的時(shí)候它要找到Xcode的Developer文件夾, 如果找不到會報(bào)如下錯(cuò)誤

解決方案
sudo xcode-select --switch /Users/JX/applications/Xcode.app/Contents/Developer


新聞熱點(diǎn)
疑難解答
圖片精選