文档章节

2.AFNetWorking

BKF_
 BKF_
发布于 2016/03/03 01:33
字数 296
阅读 14
收藏 0
  1. 封装:如图,AFNetWorking是封装在NSURL上层的网络接口封装。他在OC面向对象的基础上又封装了一次。

  2. 注意:

    AFHTTPRequestOperationManager -- 对NSURLConnection的封装(3.0版本已经去掉NSURLConnection了)
    AFHTTPSessionManager -- 对NSURLSession的封装

    源码中默认的解析方式:可以自己设置。

PS:AFJSONResponseSerializer类中添加:@"text/plain",否者服务器返回数据这种类型无法解析

self.acceptableContentTypes = [NSSet setWithObjects:@"text/plain", @"application/json", @"text/json", @"text/javascript", nil];
self.requestSerializer = [AFHTTPRequestSerializer serializer];
self.responseSerializer = [AFJSONResponseSerializer serializer];

     3.AFHTTPRequestOperationManager 使用:默认

AFHTTPRequestOperationManager *mgr = [AFHTTPRequestOperationManager manager];
请求参数
NSMutableDictionary *params = @{@“user”:@"czw"
                                  @"pwd":@"wtf"};

发送请求
POST
NSString *url = @"http://localhost:8080/czw/login";
[mgr POST:url parameters:params    success:^(AFHTTPRequestOperation *operation, id responseObject) {
    // 请求成功的时候回调
    NSLog(@"success:%@", responseObject);
    
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    NSLog(@"failure");
}];
GET请求
[mgr GET:url parameters:params    success:^(AFHTTPRequestOperation *operation, id responseObject) {
    // 请求成功的时候回调
    NSLog(@"success:%@", responseObject);
    
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    NSLog(@"failure");
}];

3.AFHTTPSessionManager使用

AFHTTPSessionManager *mgr = [AFHTTPSessionManager manager];
mgr.responseSerializer = [AFHTTPResponseSerializer serializer];
NSString *url = @"http://localhost:8080/czw/login";
[mgr GET:url parameters:nil success:^(NSURLSessionDataTask * _Nonnull task, id  _Nonnull responseObject) {
    NSLog(@"success:%@", responseObject);
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
    NSLog(@"failure");
}];

如果要详细的控制可以使用 代理方法

AFHTTPSessionManager:(他的代理方法很强大)

NSURLSessionDelegate,

NSURLSessionTaskDelegate,

NSURLSessionDataDelegate,

NSURLSessionDownloadDelegate



© 著作权归作者所有

共有 人打赏支持
BKF_
粉丝 1
博文 21
码字总数 4291
作品 0
广州
私信 提问
关于Request failed: unacceptable content-type:的错误

1.关于iOS请求"Request failed: unacceptable content-type: XXXX" xxxx可能是:@"text/html",@"text/json",@"application/json"等 AFN默认的是下面的: self.acceptableContentTypes = [N......

追逐iOS
2018/07/03
0
0
iOS NSURLConnection 和 AfNetworking免证书https连接

NSURLConnection 1.1 首先添加代理 //uiViewController.h <NSURLConnectionDelegate,NSURLConnectionDataDelegate,NSURLConnectionDownloadDelegate> 是不是全部需要三个我也没有具体细究,反......

暖冰
2015/12/11
296
0

没有更多内容

加载失败,请刷新页面

加载更多

没有更多内容

iOS个人中心渐变动画、微信对话框、标签选择器、自定义导航栏、短信验证输入框等源码

iOS精选源码 简单的个人中心页面-自定义导航栏并予以渐变动画 程序员取悦女票的正确姿势---Tip1(iOS美容篇) iOS 前台重启应用和清除角标的问题 微信原生提醒对话框3.0 JHLikeButton - 有趣...

Android爱开源
18分钟前
1
0
Yii2使用驼峰命名的形式访问控制器

yii2在使用的时候,访问控制器的时候,如果控制器的名称是驼峰命名法,那访问的url中要改成横线的形式。例如: public function actionRoomUpdate(){//}//访问的时候就要www.test.co...

dragon_tech
20分钟前
1
0
Navicat使用教程:使用Navicat Query Analyzer优化查询性能(第2部分)

下载Navicat Monitor最新版本 Navicat Monitor 是一套安全、简单而且无代理的远程服务器监控工具。它具有强大的功能使你的监控发挥最大效用。受监控的服务器包括 MySQL、MariaDB 和 Percona ...

电池盒
27分钟前
1
0
Python3 读写utf-8文本文件

with open('testRead.txt', 'r', encoding='utf-8') as f: for each_line in f: Passwith open('testWrite.txt', 'w', encoding='utf-8') as f: f.write('写入的内容'......

编程老陆
30分钟前
1
0
Linux syslog相关函数详解

介绍 syslog是Unix系统的日志系统。可以将日志记录在本地系统中。 一个完整的syslong日志包含如下信息:程序模块 | 严重性 | 时间 | 主机名 | 进程名 | 进程ID | 正文。 syslong相关函数 1....

RongJinhui0
34分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部