文档章节

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
07/03
0
0
iOS NSURLConnection 和 AfNetworking免证书https连接

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

暖冰
2015/12/11
296
0

没有更多内容

加载失败,请刷新页面

加载更多
RxJS的另外四种实现方式(四)——性能最高的库(续)

接上一篇RxJS的另外四种实现方式(三)——性能最高的库 上一篇文章我展示了这个最高性能库的实现方法。下面我介绍一下这个性能提升的秘密。 首先,为了弄清楚Most库究竟为何如此快,我必须借...

一个灰
37分钟前
1
0
麒麟AI首席科学家现世

8月31日,华为发布了新一代顶级人工智能手机芯片麒麟980,成为全球首款7nm工艺手机芯片,AI方面也实现飞跃,支持人脸识别、物体识别、物体检测、图像分割、智能翻译等。 虽然如今人人都在热议...

问题终结者
昨天
1
0
告警系统主脚本、告警系统配置文件、告警系统监控项目

告警系统主脚本 main.sh内容 #!/bin/bash#Written by aming.# 是否发送邮件的开关export send=1# 过滤ip地址export addr=`/sbin/ifconfig |grep -A1 "ens33: "|awk '/inet/ {pr...

芬野de博客
昨天
2
0
MySQL autocommit探究

-- sessionA:tx_isolation=REPEATABLE-READmysql> select connection_id();+-----------------+| connection_id() |+-----------------+| 28 |+-----------------+......

安小乐
昨天
7
0
c++多线程锁 Mutex  自动判断死锁

c++多线程锁可以使用absl::Mutex std::mutex这两种,下面是demo代码。 使用absl:Mutex的时候打印: [mutex.cc : 1338] RAW: Cycle: [mutex.cc : 1352] RAW: mutex@0x683b68 stack: @ 0x43856......

青黑
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部