常見的處理網(wǎng)絡(luò)請(qǐng)求方式
(1)NSURLConnection/NSURLsession
(2)ASIHttPRequest 早期項(xiàng)目中比較常見, 由于作者不更新了
(3)AFNetworking 推薦使用, 項(xiàng)目中使用
(4)MKNetworkKit 試試
庫(kù)文件拖入工程中, 包含頭文件
#import "AFNetworking.h"
-(void)testGetRequest{ NSString *urlstring = @"http://www.baidu.com"; urlstring = @"http://m.weather.com.cn/data/101010100.html"; urlstring = @"http://mp.manzuo.com/china/beijing/home_2.xml"; //定義AFNetworking管理 AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; //注意:默認(rèn)數(shù)據(jù)是JSON,content-type也是JSON,responSEObject是解析字典和數(shù)組,不是產(chǎn)生錯(cuò)誤Code=-1016 //解決:設(shè)置解析器為HTTP形式,下載回來是NSData manager.responseSerializer = [AFCompoundResponseSerializer serializer]; [manager GET:urlstring parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {// responseObject重要參數(shù),包含下載數(shù)據(jù)// NSLog(@"o = %@",responseObject); NSString *str = [[NSString alloc]initWithData:responseObject encoding:NSUTF8StringEncoding]; NSLog(@"str = %@",str); } failure:^(AFHTTPRequestOperation *operation, NSError *error) { NSLog(@"error = %@",error); }];}
-(void)testPostRequest{ //POST接口: //參數(shù)1:@"user" : @"quiet" //參數(shù)2:@"passWord" : @"123" NSString *urlString = @"http://quiet.local/testdir/login.php"; AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; manager.responseSerializer = [AFCompoundResponseSerializer serializer]; //參數(shù)1:傳入地址 //參數(shù)2:傳入U(xiǎn)RL請(qǐng)求的參數(shù),格式傳入字典 [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); }];}
-(void)testUploadFile{ //POST上傳的接口 NSString *urlString = @"http://quiet.local/uploadtest/pk.php"; //參數(shù)名:image : 參數(shù)值是圖片 AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; manager.responseSerializer = [AFCompoundResponseSerializer serializer]; [manager POST:urlString parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData) { NSString *path = [[NSBundle mainBundle]pathForResource:@"daji.jpg" ofType:nil]; [formData appendPartWithFileURL:[NSURL URLWithString:path] name:@"image" fileName:@"666.jpg" mimeType:@"image/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); }]; [manager POST:urlString parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData) { //實(shí)現(xiàn):上傳的數(shù)據(jù)附加到請(qǐng)求體中 //fileName:上傳后的文件名 //mimeType:需要上網(wǎng)搜索mime,把相應(yīng)的格式復(fù)制過來 NSString *path = [[NSBundle mainBundle]pathForResource:@"daji.jpg" ofType:nil]; [formData appendPartWithFileURL:[NSURL fileURLWithPath:path] name:@"image" fileName:@"666.jpg" mimeType:@"image/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); }]; }
-(void)testDownloadFile{ NSString *urlString = @"http://imgcache.QQ.com/club/item/avatar/zip/7/i87/all.zip"; //創(chuàng)建會(huì)話管理對(duì)象(通過默認(rèn)配置) AFURLSessionManager *manager = [[AFURLSessionManager alloc]initWithSessionConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]]; 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(@"%@",NSHomeDirectory()); return [NSURL fileURLWithPath:path]; } completionHandler:^(NSURLResponse *response, NSURL *filePath, NSError *error) { NSLog(@"下載完成"); }]; //啟動(dòng)任務(wù) [task resume]; }
-(void)testMonitorNetworkStatus{ AFHTTPRequestOperationManager *manager = [[AFHTTPRequestOperationManager alloc]initWithBaseURL:[NSURL URLWithString:@"www.baidu.com"]]; [manager.reachabilityManager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) { NSDictionary *dict = @{ @(AFNetworkReachabilityStatusUnknown): @"未知", @(AFNetworkReachabilityStatusNotReachable): @"不可達(dá)", @(AFNetworkReachabilityStatusReachableViaWWAN): @"GPRS", @(AFNetworkReachabilityStatusReachableViaWiFi): @"Wifi", }; NSLog(@"狀態(tài)為 %@",dict[@(status)]); }]; //開啟狀態(tài)監(jiān)視 [manager.reachabilityManager startMonitoring];}
導(dǎo)入頭文件
#import "UIKit+AFNetworking.h"
- (void)setImageWithURL:(NSURL *)url;
BAIDU_WISE_UID=wapp_1428385381699_466;
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager.requestSerializer setValue:@"wapp_1428385381699_466" forHTTPHeaderField:@"BAIDU_WISE_UID"];
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注