AFNetworking网络请求的get和post步骤
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 #import <AFNetworking.h>
- 3 @interface ViewController ()
- 4
- 5 {
- 6 // 进行网络监测判断的bool值
- 7 BOOL isOpen;
- 8 }
- 9
- 10 // 用于网络请求的Session对象
- 11 @property (nonatomic, strong) AFHTTPSessionManager *session;
- 12
- 13
- 14 @end
- 15
- 16 @implementation ViewController
- 17
- 18 - (void)viewDidLoad {
- 19 [super viewDidLoad];
- 20 // 初始化Session对象
- 21 self.session = [AFHTTPSessionManager manager];
- 22 // 设置请求接口回来的时候支持什么类型的数据
- 23 self.session.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript",@"application/x-json",@"text/html", nil];
- 24 }
- 25
- 26 #pragma mark - 网络监测按钮的响应方法
- 27 - (IBAction)NetworkmonitoringAction:(id)sender {
- 28
- 29 if (!isOpen) {
- 30 //打开网络监测
- 31 [[AFNetworkReachabilityManager sharedManager] startMonitoring];
- 32
- 33 isOpen = YES;
- 34
- 35
- 36 } else {
- 37 // 关闭网络监测
- 38 [[AFNetworkReachabilityManager sharedManager] stopMonitoring];
- 39
- 40 isOpen = NO;
- 41
- 42 }
- 43
- 44 // 接下来会判断当前是WiFi状态还是3g状态,网络不可用状态
- 45 [[AFNetworkReachabilityManager sharedManager] setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
- 46 switch (status) {
- 47 case AFNetworkReachabilityStatusUnknown:
- 48 NSLog(@"当前网络处于未知状态");
- 49 break;
- 50 case AFNetworkReachabilityStatusNotReachable:
- 51 NSLog(@"当前网络处于未链接状态");
- 52 break;
- 53 case AFNetworkReachabilityStatusReachableViaWWAN:
- 54 NSLog(@"手机流量网络");
- 55 break;
- 56 case AFNetworkReachabilityStatusReachableViaWiFi:
- 57 NSLog(@"wifi状态");
- 58 break;
- 59 default:
- 60 break;
- 61 }
- 62 }];
- 63
- 64 }
- 65
- 66 #pragma mark - get请求
- 67 - (IBAction)getRequestAction:(id)sender {
- 68
- 69 // 参数1: get请求的网址
- 70 // 参数2: 拼接参数
- 71 // 参数3: 当前的进度
- 72 // 参数4: 请求成功
- 73 // 参数5: 请求失败
- 74 [self.session GET:@"http://api.yhouse.com/m/city/dynmiclist" parameters:nil progress:^(NSProgress * _Nonnull downloadProgress) {
- 75 NSLog(@"下载的进度");
- 76 } success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
- 77 NSLog(@"请求成功:%@", responseObject);
- 78 } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
- 79 NSLog(@"请求失败:%@", error);
- 80 }];
- 81
- 82
- 83 }
- 84
- 85 #pragma mark - post请求
- 86 - (IBAction)postRequestAction:(id)sender {
- 87
- 88 /*{
- 89 do = "pri_memberlist";
- 90 "member_id" = zpHr2dsRvQQxYJxo2;
- 91 "workspace_id" = ILfYpE4Dhs2gWcuQx;
- 92 }*/
- 93 NSString *urlString = @"http://m.taskwedo.com/API/wedo1/wedo.php";
- 94
- 95 NSMutableDictionary *dict = [NSMutableDictionary dictionary];
- 96 [dict setObject:@"pri_memberlist" forKey:@"do"];
- 97
- 98 [dict setObject:@"zpHr2dsRvQQxYJxo2" forKey:@"member_id"];
- 99 [dict setObject:@"ILfYpE4Dhs2gWcuQx" forKey:@"workspace_id"];
- 100 // 参数1: url
- 101 // 参数2: body体
- 102 [self.session POST:urlString parameters:dict progress:^(NSProgress * _Nonnull uploadProgress) {
- 103 NSLog(@"上传的进度");
- 104 } success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
- 105 NSLog(@"post请求成功%@", responseObject);
- 106 } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
- 107 NSLog(@"post请求失败:%@", error);
- 108 }];
- 109 }
- 110
- 111 #pragma mark - post2请求
- 112 - (IBAction)postTwoRequestAction:(id)sender {
- 113
- 114 /*address = "";
- 115 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";
- 116 do = "add_comment";
- 117 kind = task;
- 118 "member_id" = zpHr2dsRvQQxYJxo2;
- 119 other = "";
- 120 "task_id" = 55a47e79ec25e3641;*/
- 121
- 122 NSString *urlString = @"http://m.taskwedo.com/API/wedo1/wedo.php";
- 123
- 124 NSString *commonContent = @"类模块计划用到第三部分中,待提问、回答积累到一定数量时,便于大家的问题的快速查找,所以提问部分暂时不加入这个";
- 125 // 把汉字进行编码
- 126 commonContent = [commonContent stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
- 127 NSMutableDictionary *dict = [NSMutableDictionary dictionary];
- 128 [dict setValue:@"" forKey:@"address"];
- 129 [dict setValue:commonContent forKey:@"comment"];
- 130 [dict setValue:@"add_comment" forKey:@"do"];
- 131 [dict setValue:@"task" forKey:@"kind"];
- 132 [dict setValue:@"zpHr2dsRvQQxYJxo2" forKey:@"member_id"];
- 133 [dict setValue:@"" forKey:@"other"];
- 134 [dict setValue:@"55a47e79ec25e3641" forKey:@"task_id"];
- 135
- 136 [self.session POST:urlString parameters:dict progress:^(NSProgress * _Nonnull uploadProgress) {
- 137 NSLog(@"上传的进度");
- 138 } success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
- 139 NSLog(@"post请求成功:%@", responseObject);
- 140 } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
- 141 NSLog(@"post请求失败:%@", error);
- 142 }];
- 143 }
AFNetworking网络请求的get和post步骤的更多相关文章
- AFNetworking网络请求与图片上传工具(POST)
AFNetworking网络请求与图片上传工具(POST) .h文件 #import <Foundation/Foundation.h> /** 成功Block */ typedef vo ...
- iOS - AFNetworking 网络请求
前言 在 iOS 开发中,一般情况下,简单的向某个 Web 站点简单的页面提交请求并获取服务器的响应,用 Xcode 自带的 NSURLConnection 是能胜任的.但是,在绝大部分下我们所需要访 ...
- AFNetworking网络请求数据
//创建AFNetworking的请求操作 AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWit ...
- 设置AFNetworking网络请求的超时时间
http://www.mamicode.com/info-detail-511816.html // 设置超时时间 [manager.requestSerializer willChangeValue ...
- AFNetWorking网络请求
NetWorkAPIClient.h #import <Foundation/Foundation.h> #import "AFHTTPRequestOperationManag ...
- iOS应用内抓包、NSURLProtocol 拦截 APP 内的网络请求
前言 开发中遇到需要获取SDK中的数据,由于无法看到代码,所以只能通过监听所有的网络请求数据,截取相应的返回数据,可以通过NSURLProtocol实现,还可用于与H5的交互 一.NSURLProto ...
- CHNetRequest网络请求
Paste JSON as Code • quicktype 软件的使用 iOS开发:官方自带的JSON使用 JSON 数据解析 XML 数据解析 Plist 数据解析 NetRequest 网络数据 ...
- iOS开发--Swift 基于AFNetworking 3.0的网络请求封装
Swift和OC基于AFNetworking的网络请求流程相同, 就是语法不同, 对于Swift语法不是很清楚的同学, 建议多看看API文档, 自己多多尝试. 写过OC的应该都明白每句话做什么的, 就 ...
- 网络请求的基本知识《极客学院 --AFNetworking 2.x 网络解析详解--1》学习笔记
网络请求的基本知识 我们网络请求用的是HTTP请求 Http请求格式:请求的方法,请求头,请求正文 Http请求的Request fields:请求的头部,以及被请求头部的一些设置 Http请求的 ...
随机推荐
- Java read()和readLine()的区别
1.read() 功能:读取单个字符的个数,如果已经读完的话会返回-1 (其范围从 0 到 65535 ) 例子如下: byte[] buf = new byte[1024]; int len; wh ...
- GridView中使用如下button OnClientClick代码会出现解析错误
在GridView中使用如下代码会出现解析错误: <asp:LinkButton ID="DeleteButton" runat="server" Cau ...
- C#的类型、变量和值
大学学了C#,工作也是使用C#,虽然在日常的开发中没什么大的问题,但个人觉得在C#的理解还不是很清晰,所以决定花一定的时间来理一理学过的知识,顺便革新下脑袋里的知识,因为坑爹的学校在教.net的时候, ...
- 16Aspx.com源码2013年10月到2013年12月详细
创建时间FROM: 创建时间TO: ExtJS合同管理信息系统源码 2013-12-13 [VS2008] 源码介绍: ExtJS合同管理信息系统源码浏览器兼容:IE,Firefox,谷歌等主 ...
- 使用ICSharpZipLib将文件夹压缩为zip文件
序言: 在我接触Git和SVN之前,我最常用的保存数据的办法就是把文件夹压缩成一个zip文件,添加上时间戳.下面是我在学习C#的文件操作之后做的一个练习,使用开源的ICSharpZipLib来 ...
- 百度地图API调用实例之地址标注与位置显示
之前弄了个谷歌地图API标注的调用实例,后来要求改成百度地图. 感谢主,通过网上资料(百度地图API,百度地图API详解之地图标注)收集及研究, 终于把百度地图标注和显示功能实现出来了,具体实现方法如 ...
- UIWebView和UIActivityIndicatorView的结合使用
环境:Xcode6.1 UIWebView是iOS开发中常用的一个控件,是内置的浏览器控件,我们可以用它来浏览网页,加载文档等.这篇文件将结合UIActivityIndicatorView控件制作一个 ...
- swift-闭包和类的声明
//闭包:类似Oc中的block 反向传值引起代码的回调 func hasClosureMathes(arr : [Int],value:Int,cb:(num:Int,value : Int)-&g ...
- 类库探源——System.Drawing.Bitmap
一.System.Drawing.Bitmap Bitmap 类: 封装GDI+ 位图,此位图由图形图像及其属性的像素数据组成.Bitmap 是用于处理由像素定义的图像的对象 命名空间: System ...
- redis 在windows上运行
参考自:https://github.com/ServiceStack/redis-windows 1.用vagrant 运行redis的最后版本 1.1在windows上安装vagrant http ...