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

AFNetworking网络请求的get和post步骤的更多相关文章

  1. AFNetworking网络请求与图片上传工具(POST)

    AFNetworking网络请求与图片上传工具(POST) .h文件 #import <Foundation/Foundation.h> /** 成功Block */ typedef vo ...

  2. iOS - AFNetworking 网络请求

    前言 在 iOS 开发中,一般情况下,简单的向某个 Web 站点简单的页面提交请求并获取服务器的响应,用 Xcode 自带的 NSURLConnection 是能胜任的.但是,在绝大部分下我们所需要访 ...

  3. AFNetworking网络请求数据

    //创建AFNetworking的请求操作    AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWit ...

  4. 设置AFNetworking网络请求的超时时间

    http://www.mamicode.com/info-detail-511816.html // 设置超时时间 [manager.requestSerializer willChangeValue ...

  5. AFNetWorking网络请求

    NetWorkAPIClient.h #import <Foundation/Foundation.h> #import "AFHTTPRequestOperationManag ...

  6. iOS应用内抓包、NSURLProtocol 拦截 APP 内的网络请求

    前言 开发中遇到需要获取SDK中的数据,由于无法看到代码,所以只能通过监听所有的网络请求数据,截取相应的返回数据,可以通过NSURLProtocol实现,还可用于与H5的交互 一.NSURLProto ...

  7. CHNetRequest网络请求

    Paste JSON as Code • quicktype 软件的使用 iOS开发:官方自带的JSON使用 JSON 数据解析 XML 数据解析 Plist 数据解析 NetRequest 网络数据 ...

  8. iOS开发--Swift 基于AFNetworking 3.0的网络请求封装

    Swift和OC基于AFNetworking的网络请求流程相同, 就是语法不同, 对于Swift语法不是很清楚的同学, 建议多看看API文档, 自己多多尝试. 写过OC的应该都明白每句话做什么的, 就 ...

  9. 网络请求的基本知识《极客学院 --AFNetworking 2.x 网络解析详解--1》学习笔记

    网络请求的基本知识   我们网络请求用的是HTTP请求 Http请求格式:请求的方法,请求头,请求正文 Http请求的Request fields:请求的头部,以及被请求头部的一些设置 Http请求的 ...

随机推荐

  1. Java read()和readLine()的区别

    1.read() 功能:读取单个字符的个数,如果已经读完的话会返回-1 (其范围从 0 到 65535 ) 例子如下: byte[] buf = new byte[1024]; int len; wh ...

  2. GridView中使用如下button OnClientClick代码会出现解析错误

    在GridView中使用如下代码会出现解析错误: <asp:LinkButton ID="DeleteButton" runat="server" Cau ...

  3. C#的类型、变量和值

    大学学了C#,工作也是使用C#,虽然在日常的开发中没什么大的问题,但个人觉得在C#的理解还不是很清晰,所以决定花一定的时间来理一理学过的知识,顺便革新下脑袋里的知识,因为坑爹的学校在教.net的时候, ...

  4. 16Aspx.com源码2013年10月到2013年12月详细

    创建时间FROM: 创建时间TO:   ExtJS合同管理信息系统源码 2013-12-13   [VS2008] 源码介绍: ExtJS合同管理信息系统源码浏览器兼容:IE,Firefox,谷歌等主 ...

  5. 使用ICSharpZipLib将文件夹压缩为zip文件

    序言:     在我接触Git和SVN之前,我最常用的保存数据的办法就是把文件夹压缩成一个zip文件,添加上时间戳.下面是我在学习C#的文件操作之后做的一个练习,使用开源的ICSharpZipLib来 ...

  6. 百度地图API调用实例之地址标注与位置显示

    之前弄了个谷歌地图API标注的调用实例,后来要求改成百度地图. 感谢主,通过网上资料(百度地图API,百度地图API详解之地图标注)收集及研究, 终于把百度地图标注和显示功能实现出来了,具体实现方法如 ...

  7. UIWebView和UIActivityIndicatorView的结合使用

    环境:Xcode6.1 UIWebView是iOS开发中常用的一个控件,是内置的浏览器控件,我们可以用它来浏览网页,加载文档等.这篇文件将结合UIActivityIndicatorView控件制作一个 ...

  8. swift-闭包和类的声明

    //闭包:类似Oc中的block 反向传值引起代码的回调 func hasClosureMathes(arr : [Int],value:Int,cb:(num:Int,value : Int)-&g ...

  9. 类库探源——System.Drawing.Bitmap

    一.System.Drawing.Bitmap Bitmap 类: 封装GDI+ 位图,此位图由图形图像及其属性的像素数据组成.Bitmap 是用于处理由像素定义的图像的对象 命名空间: System ...

  10. redis 在windows上运行

    参考自:https://github.com/ServiceStack/redis-windows 1.用vagrant 运行redis的最后版本 1.1在windows上安装vagrant http ...