#import "ViewController.h"
#import "AFNetworking.h"@interface ViewController ()@end@implementation ViewController-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{[self post];
}-(void)get
{//1.创建会话管理者AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];//http://120.25.226.186:32812/login?username=123&pwd=122&type=JSON//
    NSDictionary *paramDict = @{@"username":@"520it",@"pwd":@"520it",@"type":@"JSON"};//2.发送GET请求/*第一个参数:请求路径(不包含参数).NSString第二个参数:字典(发送给服务器的数据~参数)第三个参数:progress 进度回调第四个参数:success 成功回调task:请求任务responseObject:响应体信息(JSON--->OC对象)第五个参数:failure 失败回调error:错误信息响应头:task.response*/[manager GET:@"http://120.25.226.186:32812/login" parameters:paramDict progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {NSLog(@"%@---%@",[responseObject class],responseObject);} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {NSLog(@"请求失败--%@",error);}];
}
-(void)post
{//1.创建会话管理者AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];NSDictionary *paramDict = @{@"username":@"520it",@"pwd":@"520",@"type":@"JSON"};//2.发送GET请求/*第一个参数:请求路径(不包含参数).NSString第二个参数:字典(发送给服务器的数据~参数)第三个参数:progress 进度回调第四个参数:success 成功回调task:请求任务responseObject:响应体信息(JSON--->OC对象)第五个参数:failure 失败回调error:错误信息响应头:task.response*/[manager POST:@"http://120.25.226.186:32812/login" parameters:paramDict progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {NSLog(@"%@---%@",[responseObject class],responseObject);} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {NSLog(@"请求失败--%@",error);}];
}
@end

```objc

AFN结构体

- NSURLConnection

+ AFURLConnectionOperation(已经被废弃)

+ AFHTTPRequestOperation(已经被废弃)

+ AFHTTPRequestOperationManager(封装了常用的 HTTP 方法)(已经被废弃)

* 属性

* baseURL :AFN建议开发者针对 AFHTTPRequestOperationManager 自定义个一个单例子类,设置 baseURL, 所有的网络访问,都只使用相对路径即可

* requestSerializer :请求数据格式/默认是二进制的 HTTP

* responseSerializer :响应的数据格式/默认是 JSON 格式

* operationQueue

* reachabilityManager :网络连接管理器

* 方法

* manager :方便创建管理器的类方法

* HTTPRequestOperationWithRequest :在访问服务器时,如果要告诉服务器一些附加信息,都需要在 Request 中设置

* GET

* POST

- NSURLSession

+ AFURLSessionManager

+ AFHTTPSessionManager(封装了常用的 HTTP 方法)

* GET

* POST

* UIKit + AFNetworking 分类

* NSProgress :利用KVO

- 半自动的序列化&反序列化的功能

+ AFURLRequestSerialization :请求的数据格式/默认是二进制的

+ AFURLResponseSerialization :响应的数据格式/默认是JSON格式

- 附加功能

+ 安全策略

* HTTPS

* AFSecurityPolicy

+ 网络检测

* 对苹果的网络连接检测做了一个封装

* AFNetworkReachabilityManager

建议:

可以学习下AFN对 UIKit 做了一些分类, 对自己能力提升是非常有帮助的

```

- 0.2 AFN的基本使用

(1)发送POST请求的方式

```objc

-(void)post

{

//1.创建会话管理者

//AFHTTPSessionManager内部是基于NSURLSession实现的

AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];

//2.创建参数

NSDictionary *dict = @{

@"username":@"520it",

@"pwd":@"520it",

};

//3.发送POST请求

/*

http://120.25.226.186:32812/login?username=ee&pwd=ee&type=JSON

第一个参数:NSString类型的请求路径,AFN内部会自动将该路径包装为一个url并创建请求对象

第二个参数:请求参数,以字典的方式传递,AFN内部会判断当前是POST请求还是GET请求,以选择直接拼接还是转换为NSData放到请求体中传递

第三个参数:进度回调 此处为nil

第四个参数:请求成功之后回调Block

第五个参数:请求失败回调Block

*/

[manager POST:@"http://120.25.226.186:32812/login" parameters:dict progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {

//注意:responseObject:请求成功返回的响应结果(AFN内部已经把响应体转换为OC对象,通常是字典或数组)

NSLog(@"请求成功---%@",responseObject);

} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {

NSLog(@"请求失败---%@",error);

}];

}

```

转载于:https://www.cnblogs.com/cqb-learner/p/5866724.html

ios开发网络学习AFN框架的使用一:get和post请求相关推荐

  1. ios开发网络学习:一:NSURLConnection发送GET,POST请求

    #import "ViewController.h"@interface ViewController ()<NSURLConnectionDataDelegate> ...

  2. ios开发网络学习九:NSURLSessionDownloadTask实现大文件下载

    一:NSURLSessionDownloadTask:实现文件下载:无法监听进度 #import "ViewController.h"@interface ViewControll ...

  3. iOS开发网络篇—使用ASI框架进行文件下载

    iOS开发网络篇-使用ASI框架进行文件下载 说明:本文介绍iOS网络编程中经常用到的框架ASI,如何使用该框架进行文件的下载. 一.简单介绍 代码示例: 1 #import "YYView ...

  4. iOS开发 常用第三方开源框架

    iOS开发-常用第三方开源框架介绍(你了解的ios只是冰山一角) 2015-04-05 15:25 2482人阅读 评论(1) 收藏 举报 开源框架 图像: 1.图片浏览控件MWPhotoBrowse ...

  5. 02.iOS开发网络篇—HTTP协议

    iOS开发网络篇-HTTP协议 说明:apache tomcat服务器必须占用8080端口 一.URL 1.基本介绍 URL的全称是Uniform Resource Locator(统一资源定位符) ...

  6. Android Swift iOS开发:语言与框架对比

    转载自:http://www.infoq.com/cn/articles/from-android-to-swift-ios?utm_campaign=rightbar_v2&utm_sour ...

  7. 0811 iOS开发完整学习路线

    1.iOS开发需要学习哪些内容? 2.开发步骤 3.框架 为了方便开发者开发出强大的功能,苹果提供了各种各样的框架 [1]UIKit:创建和管理应用程序的用户界面 [2]QuartzCore:提供动画 ...

  8. iOS开发常用第三方开源框架

    iOS开发-常用第三方开源框架倾情整理!简书:https://www.jianshu.com/p/29cb22b13d79 iOS第三方库大全:https://blog.csdn.net/kanggu ...

  9. 【iOS开发】从Cocoa框架说开去--Fundation框架系列

    [Cocoa简介] Cocoa是苹果公司为Mac OS X所创建的原生面向对象API 是Mac OS X上五大API之一.(其他四个:Carbon POSIX X11 Java)它是苹果的面向对象开发 ...

  10. IOS开发之常用第三方框架(完善中)

    IOS开发之常用第三方框架 AFNetworking:网络请求 SDWebImage:加载网络图片 MJRefresh:下拉刷新 MBProgressHUD/SVProgressHUD:加载提示框 M ...

最新文章

  1. 互联工厂大数据云平台打造中国版CPS
  2. 体感开发学习总结 - 二
  3. 《D3.js数据可视化实战手册》——2.5 使用子选择器
  4. Asp.net中网站级异常捕获
  5. mysql中depart_mysql 学习笔记
  6. codeforces 337D Book of Evil(dp)
  7. “云联邦”构建连云成片、无缝混合的一朵云
  8. XCode - 无法对iPhone真机调试的解决方法!
  9. 北京大学联合复旦大学发布中文空间语义理解评测SpaCE2021
  10. 「leetcode」110.平衡二叉树
  11. h5带mysql数据库的留言板_【mysql】用PHP写留言板,有回复功能,要写入数据库。...
  12. java设计模式--创建模式--单例模式
  13. VS编译运行时提示:应用程序并行配置不正确,无法启动程序
  14. PLSQL Developer使用
  15. 评价类(观点)题和理解类题目的辨析 区别一:审题干信息和题目要求。
  16. CIC-IDS数据集特征介绍
  17. 常用快捷键cmd常用dos命令java安装
  18. gfp 通用成帧程序 帧结构 校验 crc 多项式 加扰
  19. 2019年二级造价工程师【视频课件】百度网盘免费下载
  20. P4924 [1007]魔法少女小Scarlet

热门文章

  1. actor模型 java框架,actor模型(actor模式优缺点)
  2. imgaug图像扩充实践
  3. Python 字典(Dictionary) items()方法
  4. 在Ubuntu上搭建TensorFlow
  5. softmax与sigmoid函数的理解
  6. vscode css智能补全_让你编码嗨到停不下来的8个VSCode插件
  7. halcon显示坐标_机器视觉之halcon入门(10)-一文弄懂halcon例程:color_fuse.hdev
  8. Github Projects 项目管理 怎么用
  9. 区块链 State Machine Replication (SMR)是什么
  10. docker容器中bash: vi: command not found