AFNetworkingV2Client改进版

简介: <p class="p1" style="color:rgb(51,51,51); font-family:Arial; font-size:14px; line-height:26px"> AFNetworkingV2Client</p> <p class="p1" style="color:rgb(51,51,51); font-family:Arial; font-size:14

AFNetworkingV2Client

====================


一、AFHTTPClient是什么?


AFHTTPClient 是在AFNetworkingV2基础上做的改进,主要实现AFHTTPClientV2类,该类根据当前OS进行选择HTTP请求处理方式,

IOS7及其以后,采用AFHTTPSessionManagerIOS7之前采用AFHTTPRequestOperationManager


二、改进:

1)在AFNetworkingV2AFHTTPResponseSerializer属性增加@"text/html"

self.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript",@"text/html", nil];

2)在AFHTTPSessionManagerAFHTTPRequestOperationManager类中增加header方法如下:

- (void)setValue:(NSString *)value forHTTPHeaderField:(NSString *)field;


三、使用方法:


工程示例采用糗事百科的嫩草API

/*

- (void)loadData

{

    [self.indicatorView startAnimating];

    NSMutableDictionary  *params = [NSMutableDictionary dictionaryWithCapacity:2];

    [params setObject:@"5" forKey:@"count"];

    [params setObject:@"1" forKey:@"page"];

    

    __weak QiushiViewController  *weakSelf = self;

    [AFHTTPClientV2 requestWithBaseURLStr:@"http://m2.qiushibaike.com/article/list/latest" params:params httpMethod:HttpMethodGet successBlock:^(id responseObject) {

        

        NSLog(@"GET responseObject: %@",responseObject);

        QiushiViewController  *strongSelf = weakSelf;

        [strongSelf.indicatorView stopAnimating];

        

        if ([responseObject isKindOfClass:[NSDictionary class]]) {

            NSArray *array = [responseObject objectForKey:@"items"];

            NSMutableArray  *strollArray = [NSMutableArray arrayWithCapacity:[array count]];

            for (int i = 0; i < [array count]; i++) {

                NSDictionary *qiushiDic = [array objectAtIndex:i];

                QiuShi *qs = [[QiuShi alloc] initWithQiuShiDictionary:qiushiDic];

                [strollArray addObject:qs];

            }

            

            strongSelf.dataArray = strollArray;

        }


        

    } failedBlock:^(NSError *error) {

        NSLog(@"GET error: %@",error);

        QiushiViewController  *strongSelf = weakSelf;

        [strongSelf.indicatorView stopAnimating];

    }];

}

*/


四、QA交流


本工程希望能给IOS开发者提供些帮助,同时更希望IOS同行,能提出宝贵意见,欢迎拍砖

目录
相关文章
|
4月前
|
存储 安全 Java
Go 基础数据结构的底层原理(slice,channel,map)
Go 基础数据结构的底层原理(slice,channel,map)
85 0
|
1月前
|
缓存 安全 测试技术
深入理解 go sync.Map - 基本原理
深入理解 go sync.Map - 基本原理
20 0
|
4月前
|
安全 Java API
【Zookeeper】Apach Curator 框架源码分析:初始化过程(一)【Ver 4.3.0】(1)
【Zookeeper】Apach Curator 框架源码分析:初始化过程(一)【Ver 4.3.0】
149 0
【Zookeeper】Apach Curator 框架源码分析:初始化过程(一)【Ver 4.3.0】(1)
|
4月前
|
缓存 Java 容器
【Zookeeper】Apach Curator 框架源码分析:初始化过程(一)【Ver 4.3.0】(2)
【Zookeeper】Apach Curator 框架源码分析:初始化过程(一)【Ver 4.3.0】
124 0
【Zookeeper】Apach Curator 框架源码分析:初始化过程(一)【Ver 4.3.0】(2)
|
存储 开发框架 前端开发
.NET 如何实现ChatGPT的Stream传输
.NET 如何实现ChatGPT的Stream传输
193 0
.NET 如何实现ChatGPT的Stream传输
|
负载均衡 安全 Java
基于ES 7.x 客户端:Java High Level Rest clients及Transport Client 兼容性、性能对比、使用方法
基于ES 7.x 客户端:Java High Level Rest clients及Transport Client 兼容性、性能对比、使用方法
基于ES 7.x 客户端:Java High Level Rest clients及Transport Client 兼容性、性能对比、使用方法
|
负载均衡 程序员 Go
Go RPC入门指南:RPC的使用边界在哪里?如何实现跨语言调用?
就是因为无法在同一个进程内,或者无法在同一个服务器上通过本地调用的方式实现我们的需求。 HTTP能满足需求但是不够高效,所以我们需要使用RPC。
168 0
Go RPC入门指南:RPC的使用边界在哪里?如何实现跨语言调用?
|
网络协议 Go
zookeeper go client原理总结
zookeeper go client原理总结
330 0
zookeeper go client原理总结
|
C++ Python
【古月21讲】ROS入门系列(3)——客户端Client、服务器Server的编程实现+自定义服务数据编程实现
【古月21讲】ROS入门系列(3)——客户端Client、服务器Server的编程实现+自定义服务数据编程实现
251 0
【古月21讲】ROS入门系列(3)——客户端Client、服务器Server的编程实现+自定义服务数据编程实现
|
算法 缓存
使用.Net Core实现FNV分布式hash一致性算法
目录 使用.Net Core实现FNV分布式hash一致性算法 Memcached FNV分布式hash算法实现 FNV1算法实现 为什么使用FNV算法实现hash一致性 使用.Net Core实现FNV分布式hash一致性算法 说到FNV哈希算法不得不提Memcached,我们先简单介绍一下Memcached。
1462 0