当前位置:首页 > 通信资讯 > 正文

ios afnetworking(iosafnetworking原理)

1.首先通过第三方:CocoaPods下载AFNetworking

1.1.先找到要查找的三方库:pod search + AFNetworking

1.2.出来一堆列表页面,选择三方库最新版本命令,例如: pod ‘MBProgressHUD','~>0.8' (:q 返回)

1.3.创建工程,进入工程: cd + 工程路径

1.4.编辑工程的Podfile文件: vim Podfile

1.5.(platform :iOS, ‘8.0'
target “工程名” do
pod ‘AFNetworking', ‘~> 3.1.0'
end)新版本 (编辑键i)->(Esc键: 输入:wq返回)

1.6.6.保存Podfile的设置,然后进行更新下载三方库: pod update

2.进入工程进行相关操作

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 // 网络请求的头文件 #import <AFNetworking.h> @interface ViewController () { // 进行网络监测判断的bool值 BOOL isOpen; } // 用于网络请求的Session对象 @property (nonatomic, strong) AFHTTPSessionManager *session; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // 初始化Session对象 self.session = [AFHTTPSessionManager manager]; // 设置请求接口回来的时候支持什么类型的数据 self.session.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript",@"application/x-json",@"text/html", nil]; } #pragma mark - 网络监测按钮的响应方法 - (IBAction)NetworkmonitoringAction:(id)sender { if (!isOpen) { //打开网络监测 [[AFNetworkReachabilityManager sharedManager] startMonitoring]; isOpen = YES; } else { // 关闭网络监测 [[AFNetworkReachabilityManager sharedManager] stopMonitoring]; isOpen = NO; } // 接下来会判断当前是WiFi状态还是3g状态,网络不可用状态 [[AFNetworkReachabilityManager sharedManager] setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) { switch (status) { case AFNetworkReachabilityStatusUnknown: NSLog(@"当前网络处于未知状态"); break; case AFNetworkReachabilityStatusNotReachable: NSLog(@"当前网络处于未链接状态"); break; case AFNetworkReachabilityStatusReachableViaWWAN: NSLog(@"手机流量网络"); break; case AFNetworkReachabilityStatusReachableViaWiFi: NSLog(@"wifi状态"); break; default: break; } }]; } #pragma mark - get请求 - (IBAction)getRequestAction:(id)sender { // 参数1: get请求的网址 // 参数2: 拼接参数 // 参数3: 当前的进度 // 参数4: 请求成功 // 参数5: 请求失败 [self.session GET:@"http://api.yhouse.com/m/city/dynmiclist" parameters:nil progress:^(NSProgress * _Nonnull downloadProgress) { NSLog(@"下载的进度"); } success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) { NSLog(@"请求成功:%@", responseObject); } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) { NSLog(@"请求失败:%@", error); }]; } #pragma mark - post请求 - (IBAction)postRequestAction:(id)sender { /*{ do = "pri_memberlist"; "member_id" = zpHr2dsRvQQxYJxo2; "workspace_id" = ILfYpE4Dhs2gWcuQx; }*/ NSString *urlString = @"http://m.taskwedo.com/API/wedo1/wedo.php"; NSMutableDictionary *dict = [NSMutableDictionary dictionary]; [dict setObject:@"pri_memberlist" forKey:@"do"]; [dict setObject:@"zpHr2dsRvQQxYJxo2" forKey:@"member_id"]; [dict setObject:@"ILfYpE4Dhs2gWcuQx" forKey:@"workspace_id"]; // 参数1: url // 参数2: body体 [self.session POST:urlString parameters:dict progress:^(NSProgress * _Nonnull uploadProgress) { NSLog(@"上传的进度"); } success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) { NSLog(@"post请求成功%@", responseObject); } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) { NSLog(@"post请求失败:%@", error); }]; } #pragma mark - post2请求 - (IBAction)postTwoRequestAction:(id)sender { /*address = ""; comment = "\U7c7b\U6a21\U5757\U8ba1\U5212\U7528\U5230\U7b2c\U4e09\U90e8\U5206\U4e2d\Uff0c\U5f85\U63d0\U95ee\U3001\U56de\U7b54\U79ef\U7d2f\U5230\U4e00\U5b9a\U6570\U91cf\U65f6\Uff0c\U4fbf\U4e8e\U5927\U5bb6\U7684\U95ee\U9898\U7684\U5feb\U901f\U67e5\U627e\Uff0c\U6240\U4ee5\U63d0\U95ee\U90e8\U5206\U6682\U65f6\U4e0d\U52a0\U5165\U8fd9\U4e2a"; do = "add_comment"; kind = task; "member_id" = zpHr2dsRvQQxYJxo2; other = ""; "task_id" = 55a47e79ec25e3641;*/ NSString *urlString = @"http://m.taskwedo.com/API/wedo1/wedo.php"; NSString *commonContent = @"类模块计划用到第三部分中,待提问、回答积累到一定数量时,便于大家的问题的快速查找,所以提问部分暂时不加入这个"; // 把汉字进行编码 commonContent = [commonContent stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]]; NSMutableDictionary *dict = [NSMutableDictionary dictionary]; [dict setValue:@"" forKey:@"address"]; [dict setValue:commonContent forKey:@"comment"]; [dict setValue:@"add_comment" forKey:@"do"]; [dict setValue:@"task" forKey:@"kind"]; [dict setValue:@"zpHr2dsRvQQxYJxo2" forKey:@"member_id"]; [dict setValue:@"" forKey:@"other"]; [dict setValue:@"55a47e79ec25e3641" forKey:@"task_id"]; [self.session POST:urlString parameters:dict progress:^(NSProgress * _Nonnull uploadProgress) { NSLog(@"上传的进度"); } success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) { NSLog(@"post请求成功:%@", responseObject); } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) { NSLog(@"post请求失败:%@", error); }]; }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:http://www.cnblogs.com/leikun1113/p/5535924.html

如果您对该产品感兴趣,请填写办理(客服微信:xiaoxiongyidong)

为您推荐:

发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。